Iriton's log

[Python/Baekjoon] 10430번: 나머지 본문

Problem Solving/Python

[Python/Baekjoon] 10430번: 나머지

Iriton 2023. 3. 27. 09:45

문제


(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를 출력한다.

 

풀이


A, B, C를 한 줄에 입력받으니 공백을 기준으로 나눠서 변수에 저장해야 한다.

이때, map(), input(), split() 을 사용할 것이다.

 

 

map(function, iterable)

: *iterable 객체(list, dict, set, str, bytes, tuple, range)에 fuction을 적용시키는 함수이다.

*iterable: 반복 가능한 객체. 즉, member를 순차적으로 반환할 수 있는 객체이다.

  iterator:  반복 가능한 객체를 반복하는 데 사용하는 객체

  모든 iterator은 iterable이지만, 모든 iterable은 iterator이 아니다.

 

 

input()

: 사용자가 입력한 값을 변수에 저장하는 함수이다.

괄호 안에는 변수를 입력받을 때 띄울 "문자열"을 넣는다. 

 

 

문자열.split(sep='구분자', maxsplit=분할횟수)

: 문자열을 원하는 구분자를 기준으로 잘라서 리스트로 저장하는 함수이다.

필요에 의해 아래와 같이 변형하여 이용해도 된다.

 

문자열.split()

문자열.split('구분자')

문자열.split('구분자', 분할횟수)

문자열.split(sep='구분자', maxsplit=분할횟수)

 

 

다시 문제 풀이로 돌아와서, 위의 세 함수로 어떻게 문제를 풀 수 있는지 살펴 보자.

변수 a, b, c에,

공백을 기준으로,

입력된 정수를 쪼개어서, 

저장해야 한다.

 

코드로 바꾸면 아래와 같다.

 

 

 

최종 코드


#input한 값을 공백을 기준으로 split하고 리스트에 저장한 후 int형으로 바꾸어 변수에 저장한다.
A,B,C = map(int, input().split()) 
print((A+B)%C, ((A%C)+(B%C))%C, (A*B)%C, ((A%C)*(B%C))%C, sep='\n') #sep='\n'은 줄바꿈을 한다.

 

Comments