풀이
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int m = sc.nextInt(); //첫번째 세 자리 수 m
int n = sc.nextInt(); //두번째 세 자리 수 n
sc.close();
System.out.println(m*(n%10));
System.out.println(m*((n/10)%10));
System.out.println(m*(n/100));
System.out.println(m*n);
}
}
세 자리 자연수 2개를 입력받아 두 자연수의 곱을 구하는 문제이다.
하지만 곱셈의 답만 구하는 것이 아닌 각 자릿수 별 곱한 값을 구해야 한다.
예시를 보면 이해가 쉽다.
1번과 2번은 세 자리 자연수로 Scanner를 통해 입력받은 뒤,
3번은 1번 자연수와 2번 자연수의 일의 자릿수를 곱한 값
4번은 1번 자연수와 2번 자연수의 십의 자릿수를 곱한 값
5번은 1번 자연수와 2번 자연수의 백의 자릿수를 곱한 값을 출력해주면 된다.
1번 & 2번
Scanner와 nextInt를 사용해 세 자릿수 자연수 2개를 입력받아준다.
3번
예시를 통해설 명하자면, 입력된 두 번째 세 자릿수 n 385에서 일의 자릿수인 5를 구한 뒤, 첫번째 세자리 수 m을 곱해주면 된다. 세 자릿수에서 일의 자리를 구하는 법은 10으로 나눈 나머지를 구하는 것이다.
그 값을 첫 번째 세 자릿수 m과 곱해 출력해주면 된다.
4번
십의 자릿수의 경우에는 가운데 끼어있어 조금 귀찮은데 385를 10으로 나눠주면 38이 되고 거기에서 다시 10으로 나눈 나머지를 구하면 일의 자릿수를 구할 수 있다.
5번
세 자릿수에서 백의 자리는 그냥 백으로 나눠주면 된다.
6번
6번은 그냥 두 수의 곱을 출력해주면 된다.
느낀점
별 것 아닌 것 같지만 기본기를 연습하는 데 아주 좋은 문제라고 생각한다.
곱셈을 언제 배웠는지 기억나지는 않지만, 구구단을 외우기 싫어했던 어렸을 적 어린 내 모습이 떠오른다.
고작 구구단 그게 뭐라고 그때는 왜 그렇게 외우는 것이 힘들었는지 모르겠다.
하지만 한 번 외워두고 나니 평생을 유용하게 써먹는다. (구구단 최고다.)
이런 게 기본의 중요성이 아닐까?
지금 풀고 있는 문제들도 언젠가 힘을 발휘할 것이다.
기억나지는 않지만 나한테 구구단을 가르쳐주신 고마운 분께 오늘 좋은 일이 일어났으면 좋겠다.
'JAVA > 백준(BAEK JOON)' 카테고리의 다른 글
[백준] 2884번: 알람 시계 자바(JAVA) (0) | 2022.06.15 |
---|---|
[백준] 2739번 구구단 자바(JAVA) (0) | 2022.06.14 |
[백준] 2439번 별 찍기 - 2 자바(JAVA) (0) | 2022.06.12 |
[백준] 2438번 별 찍기 - 1 자바(JAVA) (0) | 2022.06.11 |
[백준] 1546번 평균 자바(JAVA) (0) | 2022.06.10 |