[Baekjoon] 3052: 나머지
✔️ 문제 😎링크
두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.
수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.
✔️ 예시 1
1
2
3
4
5
6
7
8
9
10
>>> 10
각 수를 42로 나눈 나머지는 1, 2, 3, 4, 5, 6, 7, 8, 9, 10이다.
✔️ 예시 2
42
84
252
420
840
126
42
84
420
126
>>> 1
모든 수를 42로 나눈 나머지는 0이다.
✔️ 예시 3
39
40
41
42
43
44
82
83
84
85
>>> 6
각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.
✔️ SOLUTION
문제 접근
- 입력되는 숫자는 고정적으로 10개의 수가 들어오므로 for문을 이용해 10회 반복
- 여러 줄을 연속해서 불러와야 하므로 sys.stdin.readline() 사용
- list comprehension으로 불러오는 숫자마다 42로 나눈 나머지를 remainder 라는 리스트에 담음
- 서로 다른 값의 개수를 구하기 위해 set을 이용해 중복을 제거 후 len으로 개수 count
import sys
remainder = [int(sys.stdin.readline()) % 42 for _ in range(10)]
print(len(set(remainder)))
Leave a comment