본문 바로가기

컴퓨터 프로그래밍/알고리즘5

[알고리즘] 배열 .equals()문자열을 비교할 때는 == 말고 equals 를 사용하자. == 는 주소값 비교이다. Collections.sort(arrayList)arrayList 의 요소들을 오름차순 정렬시킨다. List answerList = new ArrayList();길이가 동적으로 설정되는 aarrayList 가 선언된다. arrayList.add(i)arrayList 에 i 요소를 추가시킨다. int[] result = new int[arr.length];result  배열을 선언하고, arr.length 의 길이로 초기화한다. 2024. 10. 7.
[알고리즘] 문자열에 쓰이는 메서드들 String str = Long.toString(n);숫자를 문자열로 변환 Long.parseLong(sortedStr);문자열을 Long 타입 숫자로 변환 String[] strArray = str.split("");각 자릿수를 배열로 변환 Arrays.sort(strArray, Collections.reverseOrder());내림차순 정렬 String.join("", strArray);배열을 문자열로 합치기  char firstChar = str.charAt(0); 첫 번째 문자에 접근  str.charAt(0) - '0';문자열의 첫 번째 요소 반환 ( 유니코드기 때문에 - '0' ) 2024. 9. 30.
[알고리즘][Java] 정수 제곱근 판별, 오버플로우 class Solution { public long solution(long n) { for(long x = 1; x*x 정수의 제곱근을 판별하는 문제에서의 포인트 1. 오버플로우n 의 제곱근인 x 라면 굳이 long 타입으로 선언해주어야할까?int 로 x 를 선언해주었을 때(int 변수) * (int 변수) 의 결과가 (int 변수) 의 범위를 초과하면 오버플로우가 발생할 수 있음.예를 들어, int 의 최대값인 2,147,483,647 에 1을 더하면 -2,147,483,648로 변환됨 2. 필요없는 계산 줄이기기존에 반복문의 범위를 x근데 어차피 x*x 가 n 보다 넘어간다면 더 이상 제곱근이 될 수가 없기 때문에이를 미리 생각해서 필요없는 계산을 사전에 없애서 성능 향상을 기대해.. 2024. 8. 12.
[알고리즘] [Java] String → Int 변환, Integer.parsInt(), char - '0' Integer.parseInt(), Integer.valueOf()class Solution { public int solution(String s) { int answer = Integer.parseInt(s); return answer; }}String 타입의 변수를 숫자로 변환하기 위해 아래 두 방법을 알아봤다.int num = Integer.parseInt(str);String 타입의 num 을 int 타입으로 변환int num = Integer.valueOf(str);String 타입의 num 을 Integer 타입으로 변환앞에 부호 +,- 를 사용해도 int 안으로 정상적으로 들어간다. char - '0'public class StrToInt { pub.. 2024. 8. 8.
[알고리즘] [Java] 정수를 문자열로 바꾸기, 타입 변환하기 class Solution { public int[] solution(long n) { String i = Long.toString(n); int[] answer = new int[i.length()]; for (int j = 0; j  이번 알고리즘 문제를 풀면서 알게된 부분을 정리해보려고 한다. 1) 배열을 선언하기 위해서는 배열 크기를 먼저 지정을 해야했다. 하지만 입력되는 값에 따라 크기가 바뀌기 때문에 이를 어떻게 하면 될지 문제가 생겼다. String i = Long.toString(n); 입력받은 long 타입의 n 정수를 Long.toString 안에 넣어서 String i 변수 안에 넣어줌으로서 "정수" 를 "문자열" 로 바꿀 수 있었다. int.. 2024. 8. 7.