본문 바로가기

백준 문제 풀이/파이썬

백준 10430번 "나머지" --- 파이썬

728x90

https://www.acmicpc.net/problem/10430

안녕하세요! 오늘은 백준 10430번 문제, “나머지”에 대해 알아보겠습니다. 🎉 이 문제는 기본적인 수학 연산을 활용하여 나머지 연산의 성질을 이해하는 데 도움을 주는 좋은 기회입니다.

문제 소개

이 문제는 주어진 세 수 A, B, C에 대해 두 가지 나머지 연산의 성질이 성립하는지를 확인하는 것입니다. 즉,

    1. (A + B) % C와 ((A % C) + (B % C)) % C가 같은가?
    2. (A * B) % C와 ((A % C) * (B % C)) % C가 같은가?

이러한 질문은 모듈러 산술의 기본적인 성질을 다루고 있으며, 이 문제를 통해 나머지 연산의 특성을 명확히 이해할 수 있습니다.

문제 이해하기

나머지는 어떤 수를 다른 수로 나누었을 때 남는 값을 의미합니다. 예를 들어, 10을 3으로 나누면 몫은 3이고, 나머지는 1입니다.

두 수 A와 B를 더한 후 그 결과를 C로 나눈 것과,
각각 A와 B를 먼저 C로 나눈 후 그 결과를 더한 것을 다시 C로 나누었을 때,

여기서 중요한 점은 두 수 A와 B를 더한 후 그 결과를 C로 나눈 것과, 각각 A와 B를 먼저 C로 나눈 후 그 결과를 더한 것을 다시 C로 나누었을 때 두 결과가 같다는 것입니다.

입력 및 출력 형식

  • 입력: 첫째 줄에 A, B, C가 순서대로 주어집니다. (2 ≤ A, B, C ≤ 10,000)
  • 출력:
      • 첫째 줄에 (A + B) % C
      • 둘째 줄에 ((A % C) + (B % C)) % C
      • 셋째 줄에 (A * B) % C
      • 넷째 줄에 ((A % C) * (B % C)) % C

예제 설명

예를 들어, 입력이 5 8 4라면:

      • 첫 번째 계산: (5 + 8) % 4 = 13 % 4 = 1
      • 두 번째 계산: ((5 % 4) + (8 % 4)) % 4 = (1 + 0) % 4 = 1
      두 결과는 동일합니다.
    •    세번째 계산:
      • (5 * 8) % 4 = 0
      네 번째 계산:
      • ((5%4)*(8%4))%4 = 0
      모든 결과가 일치함을 확인할 수 있습니다.

파이썬 코드 구현

이제 위에서 설명한 내용을 바탕으로 파이썬 코드를 작성해 보겠습니다.

# 입력 받기
A, B, C = map(int, input().split())

# 각 식 계산하기
result_1 = (A + B) % C
result_2 = ((A % C) + (B % C)) % C
result_3 = (A * B) % C
result_4 = ((A % C) * (B % C)) % C

# 결과 출력하기
print(result_1)
print(result_2)
print(result_3)
print(result_4)

결과 확인 및 검증

코드를 실행하면 주어진 입력값에 대한 올바른 출력을 얻을 수 있습니다. 이를 통해 우리가 예상했던 대로 모든 조건이 만족됨을 확인할 수 있습니다.

결론

이번 문제는 프로그래밍 기초 실력을 쌓기에 좋은 예제입니다. 반복적으로 풀어보며 모듈러 산술의 개념도 확실히 익혀보세요! 추가적인 자료는 아래 링크를 참고하시면 도움이 될 것입니다.

728x90