문제
두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.
수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.
입력
첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.
출력
첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.
정답비율
61.925%
lst = list()
for i in range(10):
lst.append(int(input())%42)
cnt = dict()
for n in lst :
cnt[n] = cnt.get(n, 0) + 1
print(len(cnt))
키와 값을 통해 리스트에 있는 원소들의 갯수를 각각 받는 딕셔너리를 만들어서 서로 같은 값을 가진 원소들을 하나로 합쳐주었다. 그 후 딕셔너리의 길이를 출력하였다.
예제에 나와있는 수치들을 입력하면 리스트는 아래와 같이 만들어진다.
[39, 40, 41, 0, 1, 2, 40, 41, 0, 1]
이것을 딕셔너리를 만들어 같은 값을 가진 원소들을 합치면 다음과 같다.
{39: 1, 40: 2, 41: 2, 0: 2, 1: 2, 2: 1}
참고
3052번: 나머지
39, 40, 41, 42, 43, 44, 82, 83, 84, 85를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 모두 6개가 있다.
www.acmicpc.net
'Problem Solving > Baekjoon Online Judge' 카테고리의 다른 글
<1차원 배열> 8958번 OX퀴즈 with 파이썬 (0) | 2020.10.30 |
---|---|
<1차원 배열> 1546번 평균 with 파이썬 (0) | 2020.10.28 |
<1차원 배열> 2577번 숫자의 개수 with 파이썬 (0) | 2020.10.23 |
<1차원 배열> 2562번 최댓값 with 파이썬 (0) | 2020.10.21 |
<1차원 배열> 10818번 최소, 최대 with 파이썬 (0) | 2020.10.19 |