https://programmers.co.kr/learn/courses/30/lessons/12981
크게 두 가지의 조건을 생각해야한다.
1. 끝말잇기 규칙을 성립해야한다. (never->now는 X)
2. 나왔던 단어가 또 나오면 안된다. (tank 2번)
입출력 예시에서 힌트를 얻어 각 사람마다 딕셔너리로 구분지어주었다.
하나씩 차례대로 단어를 넣다가 규칙을 성립하지 않거나 이미 나왔던 단어이면 해당 단어의 [번호,차례]를 리턴한다.
ex)
...
{1: ['tank', 'wheel', 'mother'], 2: ['kick', 'land', 'robot'], 3: ['know', 'dream']}
def solution(n, words):
people={i:[] for i in range(1,n+1)}
visited=[words[0]]
people[1].append(words[0])
for i in range(1,len(words)):
if words[i-1][-1]==words[i][0] and words[i] not in visited:
people[i%n+1].append(words[i])
visited.append(words[i])
#print(people)
else:
return [i%n+1,i//n+1]
return [0,0]