[Java][BOJ] 2588 곱셈

Ga02·2022년 12월 21일
0

BOJ

목록 보기
11/62
post-thumbnail
post-custom-banner

📄문제

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

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

입력

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

출력

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

예제입력1

472
385

예제출력1

2360
3776
1416
181720

✔ 정답

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int A = scanner.nextInt();
		int B = scanner.nextInt();
		
		System.out.println((B%10)*A);
		System.out.println((B/10)%10*A);
		System.out.println((B/100)*A);
		System.out.println(A*B);
	}

}

Comment 👀

아 이거 분명 뭔가 몇번째 숫자 뽑아서 이렇게 저렇게 하면 될 것 같은데..! 했던 문제이다.
역시나 뭘 쓰면 될 것 같은 생각은 들지만 아직 거기까지 응용은 안되는 정도. 내가 생각한 것처럼 푼 다른 사람들이 있을까? 하고 살펴보는 중 발견한 아래의 코드

import java.util.Scanner;
 
public class Main {
 
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
 
		int A = in.nextInt();
		String B = in.next();
        
		System.out.println(A * (B.charAt(2) - '0'));
		System.out.println(A * (B.charAt(1) - '0'));
		System.out.println(A * (B.charAt(0) - '0'));
		System.out.println(A * Integer.parseInt(B));
 
	}
}

여기 나오는 것들 다 배웠던 것이라 잘 기억하고 응용만 한다면 나도 이렇게 풀 수 있었을텐데 아쉽긴 하다.
하지만 여기서 B를 String으로 입력받아야 하는 것과 마지막 문자열을 숫자로 변환하는 것까지는 생각해내지 못했다. 분명 문자든 문자열로든 입력을 받는 걸로 했어도 끝까지 풀어내지는 못했을 문제.
그래도 생각보다 나처럼 풀어낸 사람들도 꽤 있어서 나름 위안이 된다..!

profile
IT꿈나무 댓츠미
post-custom-banner

0개의 댓글