Adventure Time - Jake [백준/python] 1316: 그룹 단어 체커/ set(), list(dict.fromkeys()) 차이
본문 바로가기
Back-end/백준(python)

[백준/python] 1316: 그룹 단어 체커/ set(), list(dict.fromkeys()) 차이

by bogyoi 2023. 10. 24.

 

n=int(input()) #입력받을 단어 개수
arr=[]
cnt=0 #그룹단어 개수 저장

for i in range(n):
    word=input()
    arr.append(word[0]) #첫번째 알파벳 arr에 추가
    for j in range(len(word)-1):
        if word[j]!=word[j+1]:
            arr.append(word[j+1])
            
    if list(dict.fromkeys(word))==arr:
        cnt+=1
    arr=[] #arr 초기화

print(cnt)
 

if list(dict.fromkeys(word))==arr: 에서

처음엔 set(word)와 arr를 비교했었는데,

set()순서 상관 없이 중복을 없애는 함수라서 원하는 결과가 나오지 않았다.

그래서 list(dict.fromkeys(word)) 를 사용.

dictonary는 key값을 넣는 순서를 기억해서 리스트의 순서를 유지하면서 중복을 제거할 수 있음.

 

즉,

  • set(): 순서 상관 없이 중복 없애는 함수
  • list(dict.fromkeys()): 순서 유지하면서 중복 없애는 함수

 

이밖에 순서를 유지하면서 중복을 없앨 수 있는 방법들이 여럿 있는데 이것이 가장 기본적으로 많이 쓰는 방법이다.