백준 3052 파이썬 - 나머지

304호 하숙생·2022년 7월 25일
0
post-thumbnail


Sove

arr = []
for i in range(10):
    n = int(input())
    arr.append(n % 42)
arr = set(arr)
print(len(arr))

List 배열 중복 제거 방법

방법은 크게 2가지로 나뉜다

  • 기존 배열의 순서를 고려하지 않고 중복을 제거하는 방법
    • set() 사용
  • 기존 배열의 순서를 유지하고 중복을 제거하는 방법
    • for문 사용
    • dict.fromkeys() 사용
    • functools.reduce() 사용

여기서는 간단하게 Set() 과 for문 두가지만 알아보자

기존 배열의 순서를 고려하지 않고 중복을 제거하는방법

  1. set()
arr = ['1','1','2','2','3','4','4','5','5']
arr = list(set(arr))
print(arr) # 프린트를 계쏙찍으면 찍을때마다 순서가 다른걸 확인할 수 있음

python의 집합 자료형 set중복을 허용하지 않고, 순서가 없으므로 기존 리스트의 순서를 고려하지 안하도 되는 상황에서 중복을 제거할 때 쉽게 사용할 수 있다.

기존 배열의 순서를 유지하고 중복을 제거하는 방법

  1. for문 사용
array = ["F", "D", "A", "C", "A", "C", "F", "B", "C", "E", "D", "C"]

result = []
for value in array:
	if value not in result:
            result.append(value)
print(result) # ['F', 'D', 'A', 'C', 'B', 'E']

결과값을 담을 새로운 리스트를 하나 만들어둔 뒤, 기존의 리스트를 for 문을 돌면서, 현재의 값이 새로운 리스트에 존재하지 않을때만 새로운 리스트에 값을 삽입하는 방식으로 중복을 제거합니다. index 순서대로 for 문을 돌기 때문에 순서를 유지하면서 중복을 제거합니다.

profile
304호 하숙생의 코딩일기장

0개의 댓글