이번 문제는 숫자 2개(100 < 숫자 < 999)를 입력받아 각각 반전 시킨 후 크기 비교를 해서 더 큰걸 출력하는 문제였습니다.
import java.util.Scanner;
public class Sangsu {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String num = sc.next(); //숫자 2개를 문자열로 받음.
String num2 = sc.next();
String[] blink = new String[1]; //빈 배열 1개 생성.
String[] num_arr = num.split("");
String[] num_arr2 = num2.split("");
for (int i = 0; i < 3; i++) { //백의자리만 존재하니 3번 반복해서 숫자를 반전시켜줌
blink[0] = num_arr[0];
num_arr[0] = num_arr[2];
num_arr[2] = blink[0];
}
num = "";
for (int j = 0; j < 3; j++) { //문자 배열의 값을 문자열(String)에 저장해줌
num += num_arr[j];
}
//똑같이 두번째 문장도 반복
for (int i = 0; i < 3; i++) {
blink[0] = num_arr2[0];
num_arr2[0] = num_arr2[2];
num_arr2[2] = blink[0];
}
num2 = "";
for (int j = 0; j < 3; j++) {
num2 += num_arr2[j];
}
if (Integer.parseInt(num) > Integer.parseInt(num2)) {
System.out.println(Integer.parseInt(num));
} else {
System.out.println(Integer.parseInt(num2));
}
}
}
일단 저는 문자열로 받아서 문자 배열에 넣었고, 빈 공간의 배열을 하나 만들어서 이를 이용해서 숫자를 옮겨줘서 반전 시켰습니다. 이렇게 문자열 2개를 전부 반전 시켜준 후 Interger.parseInt()메서드를 사용해서 숫자로 바꿔서 크기 비교를 해줘서 더 큰 숫자를 출력해줬습니다. 다 풀고 다른 분들 코드를 보니 아예 숫자 배열로 2개 입력 받아서 각 숫자에 / % *등을 사용해서 짧게 푸신 분도 있고 StringBuilder클래스의 reverse().toString() 메서드를 사용하는 분들 등.. 여러 메서드를 볼 수 있어서 좋은 기회였습니다.
출처 : 백준 2908번 https://www.acmicpc.net/problem/2908