문제 풀이/Baekjoon Online Judge
[Baekjoon Online Judge] 1357번: 뒤집힌 덧셈
hyeonic
2021. 2. 21. 20:57
요구사항
- 어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수이다.
- 두 양의 정수 X와 Y가 주어졌을 때, Rev(Rev(X) + Rev(Y))를 구하는 프로그램을 작성한다.
입력
- 첫째 줄에 수 X와 Y가 주어진다. X와 Y는 1,000보다 작거나 같은 자연수이다.
출력
- 첫째 줄에 문제의 정답을 출력한다.
StringBuilder를 활용하여 뒤집힌 문자열을 반환하는 rev 메소드를 만들었다. 한 가지 주의해야 할 점은 result로 들어온 int 값이 1010과 같이 첫 자리가 0이면, 뒤집었을 때 0101로 최상단의 0이 생략되지 않는다. 그렇기 때문에 출력 직전에 Integer로 타입 변환을 해주었다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Baekjoon1357 {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String[] input = bufferedReader.readLine().split(" ");
String x = input[0];
String y = input[1];
x = rev(x);
y = rev(y);
int intResult = Integer.parseInt(x) + Integer.parseInt(y);
String stringResult = rev(String.valueOf(intResult));
System.out.println(Integer.parseInt(stringResult));
bufferedReader.close();
}
private static String rev(String x) {
StringBuilder reverseX = new StringBuilder();
for (int i = x.length() - 1; i >= 0; i--)
reverseX.append(x.charAt(i));
return reverseX.toString();
}
}