본문 바로가기
파이썬/파이썬 알고리즘

파이썬 백준 3052번 나머지 위와 비슷한 문제

by Go! Jake 2021. 3. 31.

  문제

두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.

수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.

  입력

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

  출력

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

  풀이

a=set()

for i in range(10):
    a.add(int(input())%42)

print(len(a))

a=set() set은 집합을 선언하며, {} 형태로 저장된다. 중복되는 나머지 값은 1개로 고려되므로 집합을 선언하도록 하였다.

 

for i in range(10):
    a.add(int(input())%42)

집합에서는 add()를 통해서 집합 요소를 추가할 수 있다. input()을 통해 받은 값을 int()로 정수 처리하고, 42로 나눈 나머지 값을 추가하였다. 이 때 중복되는 나머지 값들은 모두 1개로 처리된다.

  오답노트

집합을 사용할 때 set() 함수를 잊고 있었다. a=set()으로 기억하자.

 

댓글