BAEKJOON/수학

백준 10430번 [나머지](JAVA) -yes6686- 티스토리

yes6686 2025. 1. 8. 19:53
728x90
반응형
SMALL

백준 문제 풀이: 10430 [나머지]


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

문제 설명:

세 개의 정수 A, B, C가 주어졌을 때, 다음 네 가지 연산 결과를 출력하는 문제입니다:

  1. (A + B) % C
  2. [(A % C) + (B % C)] % C
  3. (A × B) % C
  4. [(A % C) × (B % C)] % C

이 연산들은 모듈로 연산의 기본 성질을 확인하는 데 활용됩니다.


문제 해결 코드


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(); // 두 번째 정수 입력
        int c = scanner.nextInt(); // 세 번째 정수 입력

        // 각 연산의 결과를 출력
        System.out.println((a + b) % c); // (A + B) % C
        System.out.println(((a % c) + (b % c)) % c); // [(A % C) + (B % C)] % C
        System.out.println((a * b) % c); // (A × B) % C
        System.out.println(((a % c) * (b % c)) % c); // [(A % C) × (B % C)] % C
    }
}

예제 입력:

5 8 4

예제 출력:

1
1
0
0

코드 설명

  • 핵심 알고리즘: 모듈로 연산의 성질을 활용하여 네 가지 결과를 계산합니다.
  • 구현 세부사항:
    • 첫 번째 출력은 (A + B) % C의 결과입니다.
    • 두 번째 출력은 [(A % C) + (B % C)] % C로, 동일한 결과를 다른 방식으로 계산합니다.
    • 세 번째 출력은 (A × B) % C의 결과입니다.
    • 네 번째 출력은 [(A % C) × (B % C)] % C로, 곱셈 모듈로의 성질을 활용합니다.
  • 시간 복잡도 분석: 모든 연산은 상수 시간(O(1)) 내에 수행됩니다.

결과

코드는 입력값에 따라 정확히 네 가지 연산 결과를 출력합니다. 모듈로 연산의 기본 성질을 확인할 수 있는 문제입니다. 더 나은 접근 방식이나 추가 질문이 있다면 댓글로 알려주세요!

728x90
반응형
LIST