코딩 테스트때 까먹지 않기 위한 메서드 및 생각

김동현·2022년 9월 23일
0

- 배열에 있는 자료형이 String이지만 숫자라면 Arrays.sort(배열)로 정렬이 가능하다.

String[] list = {"3", "2", "1", "7", "4"};
Arrays.sort(list);
System.out.println(Arrays.toString(list)); // [1, 2, 3, 4, 7]

- 정수를 뒤집고 싶을 때. ex) 12345 -> 54321

1. StringBuffer에 reverse() 사용.

int n = 12345;
String str = Integer.toString(n);
StringBuffer sb = new StringBuffer(str);
sb = sb.reverse(); 
n = Integer.parseInt(sb.toString());

2.Character.getNumericValue() 통해 뒤에서부터 넣기.

int n = 12345;
String str = Integer.toString(n);
String str2 = "";
for(int i = 0; i < answer.length; i++){
	str2 += Character.getNumericValue(str.charAt(str.length() -1 -i));
}
n = Integer.parseInt(str2); 

- 정수를 자리수 별로 자르고 싶을 때 ex) 각각의 자리수를 더해라 123 -> 1+2+3 = 6

int num = 123;
int sum = 0;

String[] arr = Integer.toString(num).split("");
for(int i = 0; i < arr.length; i++){
	sum += Integer.parseInt(arr[i]);
}

- 제곱과 제곱근

double d = Math.pow(대상 숫자, 지수); //제곱
double d = Math.sqrt(대상 숫자); // 제곱근

- ArrayList에서 최소값 구하기.

ArrayList<Integer> lists = new ArrayList<>();
for(int i = 4; i < 10; i++){
	lists.add(i);
}

Integer i = Collections.min(lists); // 4

/* 추가로 remove()를 통해 이전에 구한 최소값을 ArrayList에서 뺄 수도 있다.
lists.remove(i);
System.out.println(lists);
*/

- 대충이라도 자료형의 범위를 생각해보자!!

만약 어떤 문제를 봤을 때 '어라... 이러면 int형의 범위를 벗어날 수도 있을 것 같은데..?"하면 long으로 바꿔볼까??' 생각하는 것도 좋을 것 같다.

ex) 프로그래머스 콜라츠 추측(https://school.programmers.co.kr/learn/courses/30/lessons/12943)
입력된 수가 1이 될 때까지 입력된 수가 짝수이면 2로 나누고 홀수이면 3을 곱하고 1을 더한다.
-> 계속 3곱하다 보면 int 범위를 넘을 수 있지도 않을까??? => long으로 바꿀 생각!!

profile
오늘은 오늘

0개의 댓글