본문 바로가기

알고리즘/백준

[Python] 백준 10430번: 나머지 (파이썬)

반응형

문제 출처:

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

 

10430번: 나머지

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

www.acmicpc.net

 

문제

(A+B)%C는 ((A%C) + (B%C))%C 와 같을까?

(A×B)%C는 ((A%C) × (B%C))%C 와 같을까?

세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오.

 

입력

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

 

출력

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

 

 

풀이 방법

사실 풀이 방법이라 할 것도 없다. 입력값을 받고, 그 값을 변수에 저장하고, 주어진 계산을 끝낸 후 출력하면 되는 간단한 문제이다. 입력값을 input() 명령어로 저장하면 끝.

 

문제가 될만한 부분은 오히려 입력을 list로 받아와서 입력 숫자를 변수에 저장하는 부분이다.방법에는 여러가지가 있지만 가장 단순한 방법과 map을 이용한 간단한 방법 모두 작성해보았다.

위 사진에서 볼 수 있듯이 map(int, input().split()) 을 사용하면 코드 길이를 줄이고 보다 깔끔하게 코드 작성이 가능하다(물론 메모리나 속도면에선 큰 차이가 없다).

"""
x = input()
y = x.split(' ')
A = int(y[0])
B = int(y[1])
C = int(y[2])
각주 부분은 가장 단순무식한 방법
"""
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)

 

반응형