풀이
- 그냥 단순하게 생각해서 받아오는 입력값 중
- 첫 단어를 기준으로 하나씩 순회하며 첫 단어와 같은지 확인하고자 했으며
- 첫 단어를 2배로 늘려 좀 더 쉽게 확인했고,
- 해당 단어와 같다면 li 배열에 추가하여 탐색이 끝난 뒤 word 배열에서 제거하여 해결
import sys
input = sys.stdin.readline
word = [input().rstrip('\n') for _ in range(int(input()))]
result = 0
while len(word) != 0:
result += 1
a = word.pop(0)
a = a+a
li = []
for i in range(len(word)):
i_ln = len(word[i])
if len(a)//2 == i_ln:
for j in range(i_ln+1):
if "".join(a[j:j+i_ln]) == word[i]:
li.append(word[i])
break
for i in li: word.remove(i)
print(result)
'알고리즘' 카테고리의 다른 글
[프로그래머스, 파이썬] 옹알이(1) (0) | 2024.02.16 |
---|---|
[프로그래머스, 파이썬] 정수를 나선형으로 배치하기 (0) | 2024.02.16 |
[백준, 파이썬, 3023번] 마술사 이민혁 (1) | 2024.02.15 |
[백준, 파이썬, 1835번] 카드 (0) | 2024.02.14 |
[백준, 파이썬, 4583번] 거울상 (1) | 2024.02.14 |