[JAVA] 백준 2588번 : 곱셈

안녕하세요, 해을입니다🦖

이번 글에서는 백준 2588번 : 곱셈 문제에 대해 알아보겠습니다!

image

💡 문제

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

image

(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);
 }
}

오류 및 오타 지적, 질문, 인사 등 무엇이든 언제나 환영입니다!

읽어주셔서 감사합니다.

끝!🦕


© 2022. Haeeul All rights reserved.

🐾해을의 개발자국🐾

Powered by Hydejack v9.1.5