PS/백준

[백준/1357번/java] - 뒤집힌 덧셈

정코딩딩 2024. 3. 13. 14:33
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        StringBuilder sbnum1 = new StringBuilder(scan.next());
        StringBuilder sbnum2 = new StringBuilder(scan.next());

        String revnum1 = sbnum1.reverse().toString();
        String revnum2 = sbnum2.reverse().toString();

        int num1 = Integer.parseInt(revnum1);
        int num2 = Integer.parseInt(revnum2);

        StringBuilder sbresult = new StringBuilder(String.valueOf(num1 + num2));

        int result = Integer.parseInt(sbresult.reverse().toString());
        System.out.println(result);
    }
}

 
문자열로 숫자를 입력받아 reverse 해주기 위해 처음 입력받는 숫자 2개인 num1 , num2 를 StringBuilder 로 입력받아주었다.
역으로 변환한 문자열인 revnum1, revnum2 를 다시 int 형으로 변환하기 위해 Integer.parseInt 를 이용하였고,
두 int 를 더한 값을 다시 문자열로 만들어 StringBuilder 로 변환하고 reverse 하여 다시 int 로 변환하여 반환하는 과정으로 문제를 해결하였다. 처음엔 int 로 반환하든, String 으로 반환하든 차이가 없을거라고 생각해서 마지막 3줄 코드를 아래 처럼 작성했었는데,

    StringBuilder result = new StringBuilder(String.valueOf(num1+num2));
    System.out.println(result.reverse().toString());

int 가 아니라 String 으로 반환하기 때문에 01 도 반환하게 되어서 다시 int 로 바꾸어 반환하는 과정으로 수정하게 되었다.