https://www.acmicpc.net/problem/2908
문제
- 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다.
- 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다.
- 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.
- 상수는 수를 다른 사람과 다르게 거꾸로 읽는다.
- 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다.
- 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.
- 두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.
입력
- 첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다.
출력
- 첫째 줄에 상수의 대답을 출력한다.
입출력 예제
풀이 방식을 정리해보자.
1. br.readLine을 통해서 입력받고 StringTokenizer를 통해서 공백을 기준으로 토큰을 분리한다.
- StringTokenizer : String에서 구분자를 통해서 토큰형태로 나눌 때 사용하는 클래스
- br.readLine() : String 형으로 입력받는다.
2. 분리된 토큰을 nextToken()을 사용해서 정의하고, reverse() 를 사용해서 뒤집는다.
- reverse() : 문자열을 뒤집어주는 메소드
- st.nextToken() : 다음 토큰을 불러오는 메서드
3. 삼항연산자를 사용해서 A가 B보디 크면 A, 아니면 B를 출력하도록 한다.
- 삼항연산자 : '(조건문) : ? 참 : 거짓' 의 문법을 가지고 있다.
수행 결과를 확인한다.
답안 소스
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
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);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준 알고리즘 자바]2941 : 크로아티아 알파벳 (0) | 2022.08.30 |
---|---|
[백준 알고리즘 자바]5622 : 다이얼 (0) | 2022.08.29 |
[백준 알고리즘 자바]1152 : 단어의 개수 (0) | 2022.08.26 |
[백준 알고리즘 자바]1157 : 단어 공부 (0) | 2022.08.25 |
[백준 알고리즘 자바]2675 : 문자열 반복 (0) | 2022.08.25 |