문제 풀이/Baekjoon Online Judge

[Baekjoon Online Judge] 1357번: 뒤집힌 덧셈

hyeonic 2021. 2. 21. 20:57
 

1357번: 뒤집힌 덧셈

어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev(

www.acmicpc.net

요구사항

 - 어떤 수 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();
    }
}