백준 알고리즘 3052번

백준 알고리즘 3052번 나머지

문제

두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지이디ㅏ. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.

수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.

입력

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

출력

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

예제

입력출력
1
2
3
4
5
6
7
8
9
10
10

각 수를 42로 나눈 나머지는 1, 2, 3, 4, 5, 6, 7, 8, 9, 10이다.

42
84
252
420
840
126
42
84
420
126
1

모든 수를 42로 나눈 나머지는 0이다.

39
40
41
42
43
44
82
83
84
85
6

각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.

풀이

num = []

for _ in range(1, 11):
    num_list = int(input())
    num.append(num_list%42)
print(len(set(num)))
    
  1. 나머지 값을 넣어줄 변수를 정의한다.
  2. 숫자는 10개까지 있다고 했으니 10번 반복한다.
  3. 입력받은 숫자를 num_list에 저장한다.
  4. 입력받은 숫자를 42로 나눈 나머지 값을 num 변수에 저장한다.
  5. set() 함수는 중복된 값을 뺄 수 있으므로 중복된 값을 뺀, 개수(리스트의 길이)를 출력한다.
* TOC {:toc}

© 2021. All rights reserved.