본문 바로가기
컴퓨터/알고리즘

[백준] 알고리즘 2588번 곱셈 풀이 (Java)

by 버니케이 2022. 5. 1.
반응형

백준 알고리즘 2588번 곱셈 풀이 (Java)

https://www.acmicpc.net/problem/2588

👀 문제 설명

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

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

👀 제한사항

없음

👀 입출력 예

  • 입력
    472
    385

 

  • 출력
    2360
    3776
    1416
    181720

 

👀 풀이

import java.util.*;
public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int first = sc.nextInt();
        int second = sc.nextInt();

        int second1 = second/100; // 3

        int second2 = second/10 - second1*10; //8

        int second3 = second - second1*100 - second2*10; //5

        System.out.println(first * second3);
        System.out.println(first * second2);
        System.out.println(first * second1);
        System.out.println(first*second);
    }
}

👀 모범답안

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int c = Integer.parseInt(br.readLine());
        int d = Integer.parseInt(br.readLine());
        System.out.println(c * (d % 10));            // 10으로 나눠준 값의 나머지 값
        System.out.println(c * (d % 100 / 10));        // 100으로 나눠준 값의 나머지를 10으로 나눈 
        System.out.println(c * (d / 100));            // 100으로 나눠준 값
        System.out.println(c * d);
    }
}
  • 모범답안은 나머지 연산자를 사용해서 답을 구했다.
  • 모범답안은 Scanner 대산 BufferReader 를 사용했다. Scanner 보다 속도가 더 빠른가??
반응형

댓글