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 |