728x90
문제
두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다.
예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.
수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다.
그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.
입력
첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다.
이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.
출력
첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.
예제 입력 1
1
2
3
4
5
6
7
8
9
10
예제 출력 1
10
예제 입력 2
42
84
252
420
840
126
42
84
420
126
예제 출력 2
1
문제 풀이
L1 = [int(input()) for i in range(10)]
L2 = set([L1[i] % 42 for i in range(10)])
print(len(L2))
지난번 포스트에서 활용했던 list comprehension을 활용하여 리스트를 생성하였습니다.
이후 set 자료형의 특성을 활용하여 데이터의 중복을 제거하였습니다.
중복이 제거된 L2 리스트의 개수를 출력하여 서로 다른 나머지의 개수를 출력하였습니다.
list comprehension을 활용한 이전 포스트
set 자료형에 대한 이해를 돕는 포스트
저처럼 파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90