사용 언어 - Python3
문제 - 사이클 단어
정답
큐를 활용한 구현 (정답 맞춘 여부 X)
1. 각 word를 deque로 저장해준다. picture -> p,i,c,t,u,r,e
2. dq.append(dq.popleft())
dq의 맨 왼쪽 값 p를 없애면서 가장 오른쪽에 append한다. i,c,t,u,r,e,p의 형태
각 원소를 합한 save값이 원래 값인 picture까지 한바퀴를 다 돌면 break
save값이 word 리스트 안 다른 원소들에 속해있다면, index를 찾아 값을 없애주고
index 위치에 word[i] 값을 넣어서 다 모든 picture로 만들어버린다.
3. set(word)
동일한 값은 모두 같은 값으로 입력되어 있는 상태
set()을 통해 유일한 값 개수를 세준다.
import sys
from collections import deque
input = sys.stdin.readline
n = int(input())
word = []
for i in range(n):
word.append(input().rstrip())
for i in range(n):
dq = deque(word[i])
while True:
dq.append(dq.popleft())
save = "".join(dq)
if save == word[i]:
break
if save in word:
idx = word.index(save)
word.pop(idx)
word.insert(idx,word[i])
word = set(word)
print(len(word))
레퍼런스
- 정답 참고
- 정답 깃허브
'Algorithm > 스택&큐&덱&힙' 카테고리의 다른 글
[프로그래머스 lv 1] 카드 뭉치 (0) | 2023.04.24 |
---|---|
[프로그래머스 lv1] 덧칠하기 (0) | 2023.04.24 |
[프로그래머스 lv 2] 주식가격 (0) | 2023.01.26 |
[프로그래머스 lv 2] 다리를 지나는 트럭 (1) | 2023.01.26 |
[프로그래머스 lv 2] 프린터 (0) | 2023.01.26 |
댓글