반응형

백준 2558번 문제


풀이


      
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과 곱해 출력해주면 된다.

프린트 코드1

 

4번

십의 자릿수의 경우에는 가운데 끼어있어 조금 귀찮은데 385를 10으로 나눠주면 38이 되고 거기에서 다시 10으로 나눈 나머지를 구하면 일의 자릿수를 구할 수 있다.

프린트 코드2

5번

세 자릿수에서 백의 자리는 그냥 백으로 나눠주면 된다.

프린트 코드3

6번

프린트 코드4

6번은 그냥 두 수의 곱을 출력해주면 된다.


느낀점

별 것 아닌 것 같지만 기본기를 연습하는 데 아주 좋은 문제라고 생각한다.

 

곱셈을 언제 배웠는지 기억나지는 않지만, 구구단을 외우기 싫어했던 어렸을 적 어린 내 모습이 떠오른다.

고작 구구단 그게 뭐라고 그때는 왜 그렇게 외우는 것이 힘들었는지 모르겠다.

하지만 한 번 외워두고 나니 평생을 유용하게 써먹는다. (구구단 최고다.)

이런 게 기본의 중요성이 아닐까?

지금 풀고 있는 문제들도 언젠가 힘을 발휘할 것이다.

 

기억나지는 않지만 나한테 구구단을 가르쳐주신 고마운 분께 오늘 좋은 일이 일어났으면 좋겠다.

반응형
그레이트현