- 배열에 있는 자료형이 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
int n = 12345;
String str = Integer.toString(n);
StringBuffer sb = new StringBuffer(str);
sb = sb.reverse();
n = Integer.parseInt(sb.toString());
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
으로 바꿀 생각!!