© 2025 anveloper.dev
GitHub·LinkedIn·Contact

목차

  • 문제
  • 입력
  • 출력
  • 예제
  • 풀이
  • 코드
  • 복잡도
풀이 목록으로 돌아가기

BOJ 10430 - 나머지

2023-06-18
BOJ
브론즈 V
java
원본 문제 보기
구현
사칙연산
수학

문제

BOJ 10430 - 나머지

세 수 A, B, C가 주어졌을 때, 나머지 연산의 분배 법칙을 검증하는 네 가지 식의 결과를 출력한다.

입력

첫째 줄에 A, B, C가 주어진다 (2 이상 10,000 이하).

출력

  • 첫째 줄: (A+B)%C
  • 둘째 줄: ((A%C)+(B%C))%C
  • 셋째 줄: (A*B)%C
  • 넷째 줄: ((A%C)*(B%C))%C

예제

입력출력
5 8 41 1 0 0

풀이

나머지 연산의 분배 법칙에 따라 네 가지 수식을 계산하여 출력한다.

  1. A, B, C를 StringTokenizer로 파싱한다
  2. (A+B)%C와 ((A%C)+(B%C))%C를 각각 계산한다
  3. (AB)%C와 ((A%C)(B%C))%C를 각각 계산한다
  4. StringBuilder로 결과를 모아 한 번에 출력한다

핵심 아이디어: 모듈러 연산의 분배 법칙에 의해 첫째-둘째, 셋째-넷째 줄의 결과는 항상 같다.

코드

package day499;
 
import java.io.*;
import java.util.*;
 
public class Day497BOJ10430나머지 {
  public static void main(String[] args) throws Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    StringTokenizer st = new StringTokenizer(br.readLine(), " ");
    int A = Integer.parseInt(st.nextToken());
    int B = Integer.parseInt(st.nextToken());
    int C = Integer.parseInt(st.nextToken());
 
    StringBuilder sb = new StringBuilder();
    sb.append((A + B) % C).append('\n');
    sb.append((A % C + B % C) % C).append('\n');
    sb.append((A * B) % C).append('\n');
    sb.append((A % C * B % C) % C);
    System.out.println(sb);
  }
}

복잡도

  • 시간: O(1)
  • 공간: O(1)