[프로그래머스] 영어 끝말잇기 python

 

검사해주어야 할 부분 :

1. 이미 사용한 단어이거나

2. 첫 글자가 이전 단어와 일치하지 않음

 

처음에는 첫 글자인 부분도 검사해야 한다고 생각해서 길어졌으나 고려하지 않아도 되었다

 

 

def solution(n, words):
    used_words = set()
    prev_word = words[0][0] #이전 단어의 마지막 글자

    for i, word in enumerate(words) : 
        if word in used_words or word[0] != prev_word :
            return [(i%n) +1 , (i//n) +1]
        
        used_words.add(word)
        prev_word = word[-1]

    return [0,0]

 

words 의 길이만큼 반복문을 순회하고 각 연산의 최종 시간복잡도는 O(1) 이므로 최종 시간복잡도는 O(n)이 된다.