검사해주어야 할 부분 :
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)이 된다.
'알고리즘' 카테고리의 다른 글
[프로그래머스] 귤 고르기 python | Counter 함수로 dic 생성하기 (0) | 2024.10.30 |
---|---|
[코딩테스트 합격자 되기 10] 집합 (1) | 2024.10.18 |
[코딩테스트 합격자 되기 09] 트리 (4) | 2024.10.13 |
[코딩테스트 합격자 되기 08] 해시 Q&A (0) | 2024.10.07 |
[코딩테스트 합격자 되기 08] 해시 (0) | 2024.10.04 |