21.05.24 기록
-
백준 알고리즘 2908 풀이 완료
- 내가 푼 2908 풀이 (메모리 14MB, 시간 128ms로 통과)
import java.io.IOException; public class B2908 { public static void main(String[] args) { int[] num = new int[7]; try { for(int i = 0; i < num.length; i++) { int ch = System.in.read(); if(ch == 32) { continue; } else { num[i] = ch-48; } } int A = num[2]*100 + num[1]*10 + num[0]; int B = num[6]*100 + num[5]*10 + num[4]; System.out.println(A > B ? A : B); } catch (IOException e) { e.printStackTrace(); } } }- 띄어쓰기를 포함해서 7개의 입력만이 있기 때문에 7번 반복하는 for문으로 int형 배열에 값을 저장했다.
- 공백일 때에는
num[3]배열에 0이 그대로 있기 때문에 이 자리를 빼고 계산을 했다. BufferedReader로도 풀 수 있을 것 같은데 어떻게 풀어야할지 잘 모르겠어서 다른 풀이를 찾아봤다.
- 내가 푼 2908 풀이 (메모리 14MB, 시간 128ms로 통과)
- 다른 풀이 :
BufferedReader와StringBuilder의reverse사용
(메모리 14MB, 시간 124ms로 통과)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class B2908 {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int A = Integer.parseInt(new StringBuilder(st.nextToken()).reverse().toString());
int B = Integer.parseInt(new StringBuilder(st.nextToken()).reverse().toString());
System.out.println(A > B ? A : B);
} catch (IOException e) {
e.printStackTrace();
}
}
}
- StringBuilder의 reverse 함수는 문자열의 순서를 뒤집어준다.