[JAVA] 백준 2588번 : 곱셈
in Blog / Algorithm / Bronze IV / Bronze-iv on Algorithm, Baekjoon, Bronze
안녕하세요, 해을입니다🦖
이번 글에서는 백준 2588번 : 곱셈 문제에 대해 알아보겠습니다!
💡 문제
(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.
(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.
💡 입력
첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.
💡 출력
첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.
💡 예제 입력 1
472
385
💡 예제 출력 1
2360
3776
1416
181720
🚩 문제 풀이
[주어진 값]
- (1) 자리에 들어갈 세 자리 자연수 : x
- (2) 자리에 들어갈 세 자리 자연수 : y
[구해야 할 값]
- (3), (4), (5), (6) 자리에 들어갈 값
2가지 방법으로 문제를 해결해 봤습니다.
첫 번째 방법은 문자열로 입력받아 charAt()을 사용하여 각 자릿수의 값을 꺼내와서 계산하는 것입니다.
charAt()으로 값을 참조한 뒤, 문자가 아닌 숫자로 사용하기 위해 ‘0’을 빼줍니다.
마지막 (6) 연산의 경우, int형으로 변환한 후에 계산합니다.
두 번째 방법은 수학적으로 각 자릿수의 값을 구하여 계산하는 것입니다.
- 일의 자리 : y%10
- 십의 자리 : y%100/10
- 백의 자리 : y/100
🚩 소스 코드
첫 번째 방법
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
String y = sc.next();
sc.close();
System.out.println(x*(y.charAt(2)-'0'));
System.out.println(x*(y.charAt(1)-'0'));
System.out.println(x*(y.charAt(0)-'0'));
System.out.println(x*Integer.parseInt(y));
}
}
두 번째 방법
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int y = sc.nextInt();
sc.close();
System.out.println(x*(y%10));
System.out.println(x*(y%100/10));
System.out.println(x*(y/100));
System.out.println(x*y);
}
}
오류 및 오타 지적, 질문, 인사 등 무엇이든 언제나 환영입니다!
읽어주셔서 감사합니다.
끝!🦕