BAEKJOON/수학

백준 2588번 [곱셈](JAVA) -yes6686- 티스토리

yes6686 2025. 1. 8. 20:01
728x90
반응형
SMALL

백준 문제 풀이: 2588 [곱셈]


문제 링크: https://www.acmicpc.net/problem/2588

문제 설명:

두 정수 A와 B가 주어질 때, A와 B의 곱셈 과정을 단계별로 출력하는 문제입니다.

B는 세 자리 숫자로, 다음의 네 가지 결과를 출력해야 합니다:

  1. A와 B의 1의 자리 숫자를 곱한 결과
  2. A와 B의 10의 자리 숫자를 곱한 결과
  3. A와 B의 100의 자리 숫자를 곱한 결과
  4. A와 B의 전체 곱셈 결과

문제 해결 코드


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // 입력을 받기 위한 Scanner 객체 생성
        int a = scanner.nextInt(); // 첫 번째 숫자 입력
        int b = scanner.nextInt(); // 두 번째 숫자 입력 (세 자리 숫자)

        // B의 각 자릿수와 A의 곱
        int first = a * (b % 10); // A와 B의 1의 자리 곱
        int second = a * ((b / 10) % 10); // A와 B의 10의 자리 곱
        int third = a * (b / 100); // A와 B의 100의 자리 곱

        // A와 B의 전체 곱
        int total = a * b;

        // 결과 출력
        System.out.println(first); // 첫 번째 결과
        System.out.println(second); // 두 번째 결과
        System.out.println(third); // 세 번째 결과
        System.out.println(total); // 전체 곱
    }
}

예제 입력:

472
385

예제 출력:

2360
3776
1416
181720

코드 설명

  • 핵심 알고리즘: 두 정수를 곱할 때, 각 자릿수에 대한 곱셈 결과를 계산하고 전체 곱셈 결과를 출력합니다.
  • 구현 세부사항:
    • b % 10: B의 1의 자릿수
    • (b / 10) % 10: B의 10의 자릿수
    • b / 100: B의 100의 자릿수
    • 각 자릿수와 A를 곱해 개별 결과를 출력하고, A와 B의 전체 곱을 계산합니다.
  • 시간 복잡도 분석: 모든 연산은 상수 시간(O(1))에 수행되므로 효율적입니다.

결과

입력된 두 숫자의 곱셈 과정을 정확히 출력합니다. 개선 사항이나 질문이 있다면 댓글로 알려주세요!

728x90
반응형
LIST