반응형
문제
상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.
상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.
두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다.
출력
첫째 줄에 상수의 대답을 출력한다.
예제 입력 1 복사
734 893
예제 출력 1 복사
437
예제 입력 2 복사
221 231
예제 출력 2 복사
132
예제 입력 3 복사
839 237
예제 출력 3 복사
938
이 문제를 처음봤을 때 가장 먼저 들었던 풀이방법은 StringBuilder와 reverse() 속성을 활용해 문자열 상태로 해당 숫자를 거꾸로 뒤집고, String 형태에서 int 형태로 바꾸어 논리연산자로 대소비교를 해주면 될 것 같다고 생각했기에 해당 방법으로 풀이를 진행해 보도록 하겠다. 또한 BufferedReader를 활용해보고 싶었기에 한 줄로 문자열을 입력받는 BufferedReader를 사용하기 위해 split()을 활용해 2개의 숫자를 문자열로 입력받아보았다.
package BAEKJOON_2908;
/*
날짜: 2024.07.17.수
내용: 백준 2908번 (상수)
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class BAEKJOON_2908 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
if (str.equals("")) { // 사용자가 문자열을 제대로 입력했는지 검증하기
System.out.println("문자열을 입력하지 않으셨습니다.");
return;
}
String[] num = str.split(" "); // BufferedReader를 활용하기 위해 Split()메서드를 써서 숫자2개를 문자열로 입력받기
int A = Integer.parseInt(new StringBuilder(num[0]).reverse().toString()); // StringBuilder와 reverse속성을 활용해 문자열 상태에서 숫자를 뒤집기
int B = Integer.parseInt(new StringBuilder(num[1]).reverse().toString()); // StringBuilder와 reverse속성을 활용해 문자열 상태에서 숫자를 뒤집기
if( A >= B ){ // 거꾸로 뒤집힌 숫자의 대소 비교후 더 큰 수를 출력
System.out.println(A);
} else {
System.out.println(B);
}
br.close(); // Reader 닫아주기
}
}
반응형
'실습 > 백준' 카테고리의 다른 글
그대로 출력하기 - 11718번 (Java 풀이) (0) | 2024.07.18 |
---|---|
다이얼 - 5622번 (Java 풀이) (0) | 2024.07.18 |
단어의 개수 - 1152번 (Java 풀이) (0) | 2024.07.17 |
문자열 반복 - 2675번 (Java 풀이) (0) | 2024.07.17 |
알파벳 찾기 - 10809번 (Java 풀이) (0) | 2024.07.17 |