본문 바로가기
코딩테스트 문제풀이(Python)

백준 3052번 문제풀이

by chanfficial 2022. 5. 6.

3052. 나머지

 

 

두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.

 

 

입력 : 첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.

출력 : 첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.

 

 

ex1)

입력 :

1
2
3
4
5
6
7
8
9
10

출력 :

10

- 각 수를 42로 나눈 나머지는 1, 2, 3, 4, 5, 6, 7, 8, 9, 10으로 10가지

 

ex2)

입력 :

42
84
252
420
840
126
42
84
420
126

출력 :

1

- 모든 수를 42로 나눈 나머지는 0으로 1가지

 

 

 

 

 

 

풀이

num = []

for i in range(10):
    a = int(input())
    num.append(a % 42)

num = set(num)
print(len(num))

- 먼저 빈 배열인 num을 생성해주고 10번 동안 반복하며 입력받은 a를 42로 나눈 나머지를 배열 num에 추가해준다.

그리고 num을 set()을 사용하여 집합 자료형으로 만들어주는데, 이는 set()함수가 중복을 제거하는 필터역할을 해주기 때문이다. 

집합 자료형이 된 num에는 중복되는 나머지가 제거되었으므로 len()으로 총 길이를 출력하여 답을 구했다.

 

 

'코딩테스트 문제풀이(Python)' 카테고리의 다른 글

백준 3460번 문제풀이  (0) 2022.05.08
백준 2460번 문제풀이  (0) 2022.05.07
백준 2908번 문제풀이  (0) 2022.05.06
백준 2953번 문제풀이  (0) 2022.05.05
백준 2711번 문제풀이  (0) 2022.05.05