반응형

안녕하세요 밤샘공부입니다~

[백준 10430번]

질문이 있으시면, 아래 오픈채팅방이나 메일로 보내주세요~

2시간 이내에 답변 드리겠습니다. 

 

오픈챗 링크 : https://open.kakao.com/o/srASNxef

메일 주소 : studying.all.night.1114@gmail.com

 

전달력을 높이기 위해 평어체를 사용하였습니다.

 


1. 문제 설명

 

 (1) 문제

(A+B)%C는 ((A%C) + (B%C))%C 와 같을까?
(A×B)%C는 ((A%C) × (B%C))%C 와 같을까?
세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오.

 

 (2) 입력

  첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000)

 

 (3) 출력

  첫째 줄에 (A+B)%C, 둘째 줄에 ((A%C) + (B%C))%C, 셋째 줄에 (A×B)%C, 넷째 줄에 ((A%C) × (B%C))%C를 출력한다.

 

 (4) 예제 

  ① 예시 1

   - 입력

5 8 4

   - 출력

1
1
0
0

 

 


2. 문제 해석 및 총평

 

   정수론의 mod 연산에 대하여 알고 있다면 (몰라도 푸는 데 지장은 없다.) 쉽게 해결할 수 있으며 문제 의도를 파악할 수 있다. 문제 의도를 파악했든 못했든, 기존의 python 사칙연산 중 나머지 연산을 이용하여 풀이를 마무리하면 된다. 

 


3. 코드

 

 (1) 모범답안

# 모범 답안

# 이 정도 입력 방식은 익숙해 졌으리라 믿는다.
a, b, c = map(int, input().split()) 

print((a+b)%c)
print(((a%c)+(b%c))%c)
print((a*b)%c)
print(((a%c)*(b%c))%c)

   기본적으로 input()을 이용해 두 수를 입력 받은 뒤, 문제에서 출력하라는 값을 정직하고 우직하게 출력하는 방법이다. mod 연산을 몰랐다면, 이렇게 풀었을 것이다.

 

 (2) 추가풀이

# 추가 풀이

# 이 정도 입력 방식은 익숙해 졌으리라 믿는다.
a, b, c = map(int, input().split()) 

print((a+b)%c)
print((a+b)%c)
print((a*b)%c)
print((a*b)%c)

   정수론 mod 연산에 대하여 배웠다면, 결국 위 방식으로 풀면 됨을 알 수 있다.

반응형