본문 바로가기
  • Maker's VAP
Study/알고리즘

[백준 JAVA] 1단계 / 2588 / 곱셈

by E = mc² 2020. 8. 26.

문제

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

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

입력

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

출력

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

 

 

import java.util.*;

public class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int i = sc.nextInt();
		int j = sc.nextInt();

		System.out.println(i * (j % 10));
		System.out.println(i * (j % 100 / 10));
		System.out.println(i * (j / 100));
		System.out.println(i * j);
	}
}

 

scanner를 사용하여 각각 세자리 수를 입력받고 두 수를 곱한 값과 첫 번째 수에 두 번째 수를 한 자리씩 분리하여 곱한 결과를 구해야 한다.

 

두 번째 수를 하나씩 분리할 때는 연산자마다 우선순위에 주의하여 몫과 나머지 구하는 연산자 "/", "%"를 활용하면 쉽게 풀 수 있다. 위의 둘은 우선순위가 같으므로 2번째 출력문인

System.out.println(i * (j % 100 / 10));

에서 왼쪽부터 순서대로 구해지며 문제와 동일한 숫자를 입력했다는 가정하에 작성하면

(472 * (385 % 100 / 10))이 되고

 

385 % 100 = 85

85 / 10 = 8

 

이므로 472 * 8 이 된다.

 

이외의 방법으로는 두 번째로 입력받는 수를 문자열로 받은 후 int(정수) 형으로 형 변환(Casting)하여 첫 번째 수와 각각 곱셈을 해도 된다. 하지만 더욱 간결한 코드를 위해 위의 식으로!

반응형

댓글