문제 출처 사이트 : https://www.acmicpc.net/problem/2588

문제


(세자리 수) X (세자리 수)는 다음과 같은 과정을 통하여 이루어진다.

(1) 과 (2)위치에 들어갈 세 자리 자연수가 주어질 때, (3), (4), (5), (6) 위치에 들어갈 값을 구하는 프로그램을 작성하시오.

입력


첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.

출력


첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

작성코드


import java.util.Scanner;

public class Main {

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

        int firstNum = sc.nextInt();
        String secondNum = sc.next();
        
        sc.close();

        for(int i = secondNum .length()-1; i >= 0; i--) {
            int num = Character.getNumericValue(secondNum .charAt(i));
            System.out.println(firstNum  * num);            
        }

        System.out.println(firstNum  * Integer.parseInt(secondNum));
    }
}

문제 풀이 과정


문제는 (세자리 수) X (세자리 수) 이지만, 그 이상의 숫자를 받았을 경우에도 돌아갈 수 있는 프로그램을 작성했습니다.

  1. 두번째 숫자는 String 객체로 데이터를 입력 받습니다.
  2. 입력받은 데이터를 charAt으로 저장된 문자열 중 한글자씩 char 타입으로 변환합니다.
  3. char 타입은 ASCII Code 기반이기 때문에 int 형식으로 캐스팅 할 경우 0 = 48 부터 시작 합니다. 그래서 캐스팅 할때 '0' 또는 48을 뺴주는 형태로 캐스팅을 하는데 이를 보다 편리하게 Character.getNumericValue() 메소드를 이용하여 캐스팅 해줍니다.
  4. 이 과정을 for 문을 통해 String의 마지막 인덱스 값부터 0까지 반복합니다.

'Java > 백준 알고리즘' 카테고리의 다른 글

[BAEKJOON] 2884 알람 시계  (0) 2021.10.03
[BAEKJOON] 14681 사분면 고르기  (0) 2021.10.03

+ Recent posts