[프로그래머스] 영어 끝말잇기Lv.2
나의 풀이
def solution(n, words):
arr = [words[0]]
idx = 0
for i in range(1, len(words)):
if words[i] in arr or words[i][0] != arr[-1][-1]:
print(words[i])
idx = i
break
arr.append(words[i])
else:
return [0, 0]
first = (idx % n) + 1
second = (idx // n) + 1
return [first, second]
- 리스트를 생성하여 끝말잇기의 0번째 단어를 담고, 반복은 1부터 돌려서 전의 단어와 비교하는 식으로 접근하였다.
- 현재 단어가 리스트에 포함되어 있거나 리스트의 최근(마지막) 단어의 마지막 글자와 현재 단어의 첫 글자가 같다면 끝말잇기가 종료되기 때문에 해당 단어의 인덱스를 idx 변수에 담아주고, 반복을 종료한다.
- 그리고 idx를 사용하여 사람의 번호와 몇 번째 턴인지 계산을 하여 리턴해준다.
- 문제가 없다면 for else 문을 타서 [0, \0]이 리턴된다.