# 1. 마지막 단어의 마지막 글자가 다음 첫글자인지
# 2. 이전에 사용한 단어인지 -> dict로 최적화
def solution(n, words):
answer = [0, 0]
check = {}
temp = words[0]
check[temp] = 1
for i in range(1, len(words)) :
word = words[i]
if temp[-1] == word[0] and word not in check :
check[word] = 1
temp = word
else :
answer = [i%n+1, i//n+1]
break
return answer
문제정리
끝말잇기를 하는데 이미말핸던 단어를 말하거나, 끝말잇기가 성립하지 않는 단어를 말한사람에 대해 [몇번째 반복, 몇번째에 걸렸는지]를 return하는 문제 (아무도 안걸리면[0,0])
풀이과정
위의 두가지 조건을 통과해야한다고 생각하였고
1번은 반복하면서 체크하면 되는 것이고
2번은 dict를 활용하여 저장하고 체크한다면 시간복잡도를 줄일 수 있다고 생각하였다.(list를 확인하는 것보다)
풀이 후
;;