문제
상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.
상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.
두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다.
출력
첫째 줄에 상수의 대답을 출력한다.
예제 입력 1 복사
734 893
예제 출력 1 복사
437
예제 입력 2 복사
221 231
예제 출력 2 복사
132
예제 입력 3 복사
839 237
예제 출력 3 복사
938
1. 문자열 거꾸로 뒤집는 알고리즘
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 {
// 1. 수를 거꾸로 읽는다.
// 2. 두 수를 비교해서 큰 수를 출력
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
// 1) 문자열 뒤집는 알고리즘을 작성해서 사용
int A = reverse(Integer.parseInt(st.nextToken()));
int B = reverse(Integer.parseInt(st.nextToken()));
System.out.println(A>B? A:B); // 삼항연산자
}
// 받은 수를 거꾸로 뒤집는 알고리즘
public static int reverse(int num) {
int answer = 0;
while(answer!=0) {
answer = answer*10 + answer % 10;
num /= 10;
}
return answer;
}
}
2. StringBuilder의 reverse( ) 사용
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class String_2908 {
public static void main(String[] args)throws IOException {
// 1. 수를 거꾸로 읽는다.
// 2. 두 수를 비교해서 큰 수를 출력
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
// 2) StringBuilder의 reverse를 사용해서 거꾸로 뒤집음
StringBuilder sbA = new StringBuilder(st.nextToken());
StringBuilder sbB = new StringBuilder(st.nextToken());
int A = Integer.parseInt(sbA.reverse().toString());
int B = Integer.parseInt(sbB.reverse().toString());
System.out.println(A>B? A:B); // 삼항연산자
}
}
- if else로 된다면 삼항연산자로 깔끔하게 끝내기..!
- 문자열 뒤에서 부터 읽을 때 알고리즘 작성하기(1) 아니면 StringBuilder의 reverse( )메서드 이용하기 둘 중하나로 사용하잣..!
- 거꾸로 뒤집는 알고리즘은 두고두고 유용할 것 같아서 잘 생각해놓기!!!
'algorithm > Baekjoon' 카테고리의 다른 글
[11720] 숫자의 합 (0) | 2023.04.30 |
---|---|
[백준] 2750 수 정렬하기(Arrays.sort, 선택, 삽입, 퀵) (0) | 2022.10.13 |
[백준] 1157 단어 공부 (0) | 2022.10.05 |
[백준] 2675 문자열 반복 (0) | 2022.10.05 |
[백준] 10809 알파벳 찾기 (0) | 2022.10.05 |