문제
두 자연수 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))
'백준(Python) 풀이' 카테고리의 다른 글
백준 2630번. 색종이 만들기 (Python / 파이썬) (0) | 2022.07.22 |
---|---|
백준 11279번. 최대 힙 (Python / 파이썬) (0) | 2022.07.22 |
백준 18111번. 마인크래프트 (Python / 파이썬) (0) | 2022.07.20 |
백준 4949번. 균형잡힌 세상 (Python / 파이썬) (0) | 2022.07.20 |
백준 10989번. 수 정렬하기 3 (Python / 파이썬) (0) | 2022.07.14 |
댓글