728x90
programmers.co.kr/learn/courses/30/lessons/12981
접근
끝말잇기를 하면서 탈락하는 조건을 그대로 구현을 하였다.
이 문제에서는 탈락한 사람과 탈락한 라운드를 출력해야한다. 따라서 1번 인덱스부터 끝말잇기를 진행하여 탈락자가 발생한 시점의 인덱스를 활용하여 탈락한 사람과 라운드를 구했다.
구현
먼저 이전에 말한 단어를 담는 past_words라는 리스트를 선언하였고 조건에 맞게 영단어를 말했을 때 이 리스트에 담는다.
그리고 1번 인덱스부터 탐색을 진행하여 영단어가 1글자이거나 이전에 말했을 때, 그리고 이전의 영단어와 끝말잇기가 안될 때는 종료를 시켰다.
먼저 탈락자는 종료되는 시점의 인덱스를 n으로 나누고 +1로 계산하였으며 라운드는 탈락된 인덱스를 n으로 나누고 +1을 하였다.
단순히 인덱스 처리만 해주면 되는 문제였다.
처음에는 n명의 사람들이 말한 것을 각각 담으려고 했다.
def solution(n, words):
answer = []
past_words = []
past_words.append(words[0])
for i in range(1, len(words)):
if len(words[i]) == 1 or words[i] in past_words:
answer.append((i%n)+1)
answer.append(i//n+1)
break
if words[i-1][-1] != words[i][0]:
answer.append((i%n)+1)
answer.append(i//n+1)
break
past_words.append(words[i])
else:
answer = [0, 0]
return answer
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
[Level 2] 점프와 순간이동 (0) | 2021.03.23 |
---|---|
[Level 2] 124 나라의 숫자 (0) | 2021.03.22 |
[Level 2] 스킬트리 (0) | 2021.03.22 |
[Level 3] 거스름돈 (0) | 2021.03.17 |
[Level 2] 조이스틱 (0) | 2021.03.16 |