본문 바로가기
백준(Python) 풀이

백준 3052번. 나머지 (Python / 파이썬)

by yewonnie 2022. 7. 20.

문제

두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 
수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.

입력

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

출력

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

문제 풀이 

수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구하고 

10개의 나머지들 중 서로 다른 값의 개수를 구하는 문제이다. 

 

이 문제는 Set() 즉, 집합을 사용하면 쉽게 해결할 수 있다. 

42로 나눈 나머지는 % 연산자를 통해 쉽게 구할 수 있다. 

구한 나머지들 중 서로 다른 값의 개수를 구하려면 

중복을 제거해주면 된다.

 

집합은 어떤 원소를 저장할 때 자동으로 중복을 제거하여 저장해준다. 

따라서, 각 원소를 42로 나눈 나머지들을 집합에 저장해주면 

중복이 자동으로 제거되어 저장되어 서로 다른 값만 저장되므로 

개수를 구할 수 있다. 


My Code 

s = set() # 집합 

# 10개의 원소를 입력받고 42로 나눈 나머지를 집합에 저장
for i in range(10):
    s.add(int(input()) % 42)

# 중복이 제거된 상태로 저장되므로 집합에 저장된 원소의 개수를 출력
print(len(s))

댓글