본문 바로가기
알고리즘/문제

[Python] 백준 3052번 파이썬, 리스트 중복 제거 하는 법

by You_mool 2021. 7. 8.
반응형

문제 (정답률 60%)

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

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

입력

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

출력

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

예제 입력 1 복사

1 2 3 4 5 6 7 8 9 10

예제 출력 1 복사

10

각 수를 42로 나눈 나머지는 1, 2, 3, 4, 5, 6, 7, 8, 9, 10이다.

예제 입력 2 복사

42 84 252 420 840 126 42 84 420 126

예제 출력 2 복사

1

Source Code

remainder_list = []  # 나머지 리스트 

for _ in range(10):
    _input = int(input())
    remainder_list.append(_input % 42)  # 42로 나눈 나머지 저장
remainder_set = set(remainder_list)  # 저장한 리스트를 집합으로 변환
print(len(remainder_set))  # 변환하면 중복이 제거 됨, 길이가 중복되지 않는 나머지의 개수

리스트를 집합으로 변환하면 중복이 제거된다.

하지만 변환 된 집합의 순서가 뒤죽박죽이 되기 때문에 다른 작업을 한다면 정렬을 따로 해줘야 된다.

 

반응형