Algorithm/백준(BOJ)

[JAVA] 2588 - 곱셈

Gr00t 2021. 1. 4. 21:22

문제

(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다. (1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.

입력

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

출력

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


풀이

방법

  • 첫번째 숫자는 int로 받고 두번째 숫자는 String으로 받는다.
  • 두번째 숫자로 for문을 돌면서 첫번째 숫자를 곱한 값을 출력한다.
  • 마지막에 두 수를 곱한 값을 출력한다.

배운 문법

  1. String객체의 charAt메소드를 통해 char값을 얻을 수 있다.

    (주의) 얻어지는 순서는 앞에서 부터 = for 문 거꾸로!

  1. String.valueof를 통해 charString으로 바꿀 수 있다.
  1. Integer.parseInt()함수를 통해 Stringint로 바꿀 수 있다.

    ⇒ 나름 검색을 통해 변환한 방법이었지만, 더 좋아보이는 방법을 2개 찾았다.

추가로 배운 문법

  1. Character.getNumericValue를 통해 charint로 바꿀 수 있다.
  1. String객체의 substring메소드를 사용하면 굳이 char로 변환하지 않아도 된다.

답 - 내가 짠 코드

import java.util.Scanner;

public class Multiply {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int first = scanner.nextInt();
        String second = scanner.next();
        for(int i=second.length()-1; i>=0 ; i--){
            System.out.println(Integer.parseInt((String.valueOf(second.charAt(i))))*first);
        }
        System.out.println(first*Integer.parseInt(second));
    }
}

서버에 제출할 경우, 클래스 명을 "Main"으로 바꿔야한다.

다른 답 - getNumericValue

System.out.println(Character.getNumericValue(second.charAt(i))*first);

다른 답 - substring

System.out.println(Integer.parseInt(second.substring(i,i+1))*first);

'Algorithm > 백준(BOJ)' 카테고리의 다른 글

[Python] 2875 - 대회 or 인턴  (0) 2021.01.06
[Python] 11047 - 동전 0  (0) 2021.01.06
[JAVA] 10950 - A+B - 3  (0) 2021.01.04
[JAVA] 1000 - A+B  (0) 2021.01.04
[JAVA] 2557 - Hello World  (0) 2021.01.04