백준 알고리즘 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)))
- 나머지 값을 넣어줄 변수를 정의한다.
- 숫자는 10개까지 있다고 했으니 10번 반복한다.
- 입력받은 숫자를
num_list
에 저장한다. - 입력받은 숫자를 42로 나눈 나머지 값을
num
변수에 저장한다. set()
함수는 중복된 값을 뺄 수 있으므로 중복된 값을 뺀, 개수(리스트의 길이)를 출력한다.