카테고리 없음

[백준] 1357번: 뒤집힌 덧셈 - JAVA

민킹 2022. 5. 10. 17:31

문제 보기

 

문제 분석

[요약]

주어진 두 숫자를 뒤집어 더한 값을 뒤집어 출력한다.

 

[푸는 과정]

그냥 답을 도출해 내는것 까지는 어렵지 않았다. 다만 근 한 달만에 푸는 문제라 처음부터 효율적인 코드를 짜내지 못했다. 일단 생각나는대로 코드를 치고 답 제출까지 확인한 뒤 참고할 만한 코드를 구글링 해 보았다.

우선 나는 그냥 두 수를 Scanner로 String 형태로 입력 받아서 사용하였다. 반복문을 이용해 각 숫자의 자릿수를 바꿔준 뒤 덧셈을 하고 덧셈을 한 결과도 반복문을 이용해 자릿수를 뒤집어 주었다.

구글링을 한 코드는 두 수를 Scanner로 int 형태 그대로 입력 받는다. 반복문을 이용해 숫자를 10으로 나눈 나머지를 차례로 열거하여 숫자를 뒤집어 준다. 해당 작업은 사실 반복되는 작업이다. 그렇기에 함수로 따로 빼 주어 코드 길이를 줄였다.

 

코드 보기

[내 코드]

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String[] numbers = scanner.nextLine().split(" ");

        int[] numRevArray = new int[numbers.length];
        for(int i=0; i<numbers.length; i++){
            String[] number = numbers[i].split("");

            String numRevStr = "";
            for(int j=number.length-1; j>=0; j--){
                numRevStr += number[j];
            }
            numRevArray[i] = Integer.parseInt(numRevStr);
        }

        int total = 0;
        for(int i : numRevArray){
            total += i;
        }
        
        String[] totalStrArray = String.valueOf(total).split("");
        String totalStr = "";
        for(int i=totalStrArray.length-1; i>=0; i--){
            totalStr += totalStrArray[i];
        }
        System.out.println(Integer.parseInt(totalStr));
    }
}

 

[참고 코드]

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int X = scanner.nextInt();
        int Y = scanner.nextInt();

        scanner.close();
        
        int x = Rev(X);
        int y = Rev(Y);
        int result = Rev(x + y);

        System.out.println(result);
    }
    
    private static int Rev(int N) {
        String str = "";
        while(N > 0){
            str += N % 10;
            N /= 10;
        }
        return Integer.parseInt(str);
    }
}

참고 블로그: https://airzinc.tistory.com/entry/%EB%B0%B1%EC%A4%80-1357-JAVA

 

백준 1357 뒤집힌 덧셈 (JAVA)

1357번: 뒤집힌 덧셈 1357번: 뒤집힌 덧셈 어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일

airzinc.tistory.com

 

What I learned today... is...

사실 이 문제로 포스팅을 하는 이유인데..

1) String + 숫자 = String

2) Scanner로 입력 받을 시 공백을 알아서 구분해 준다.

 

특히 1번같은 경우는 누가 물어본다면 대답이 가능하지만 막상 코드 칠때는 까먹는 사실인 것 같아서 스스로 remind를 위해 포스팅을 해 본다.