본문 바로가기

Problem Solving/Baekjoon Online Judge

<1차원 배열> 3052번 나머지 with 파이썬

 

문제

 두 자연수 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