Back-end/백준(python)
[백준/python] 1316: 그룹 단어 체커/ set(), list(dict.fromkeys()) 차이
bogyoi
2023. 10. 24. 22:31

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()): 순서 유지하면서 중복 없애는 함수
이밖에 순서를 유지하면서 중복을 없앨 수 있는 방법들이 여럿 있는데 이것이 가장 기본적으로 많이 쓰는 방법이다.