- set을 활용하여 이전에 누가 말한 단어인지 검사
- 현재 단어의 이전 단어를 저장해 두고 현재 단어의 처음 알파벳과 이전 단어의 마지막 알파벳을 비교
- 순서는 (i % n) + 1번째 사람이 (i // n) + 1번째 순서에서 탈락한 것이다.
- 모두 정상적으로 끝마친 경우는 [0, 0] 리턴
def solution(n, words):
word_said = set()
answer = []
last = ''
for i, word in enumerate(words):
if word in word_said or (len(last) != 0 and last[-1] != word[0]):
answer = [(i%n)+1, (i//n)+1]
break
word_said.add(word)
last = word
if len(answer) == 0:
answer = [0, 0]
return answer
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
'알고리즘[Python] > 프로그래머스' 카테고리의 다른 글
[ Lv 2 ] 주식가격 (0) | 2021.06.28 |
---|---|
[ Lv 2 ] [1차] 프렌즈4블록 (0) | 2021.06.27 |
[ Lv 2 ] 구명보트 (0) | 2021.06.27 |
[ Lv 2 ] 다리를 지나는 트럭 (0) | 2021.06.26 |
[ Lv 2 ] 카펫 (0) | 2021.06.26 |