[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)))

Categories:

Updated:

Leave a comment