오늘도 파이썬으로 코테 연습!
https://school.programmers.co.kr/learn/courses/30/lessons/12981
1~n명이 끝말잇기를 한다. 이들이 말한 단어가 리스트 words로 입력된다. 앞의 사람이 말한 단어의 끝 글자로 시작하지 않으면 틀리고, 이미 말했던 단어를 말하면 틀린다. 가장 먼저 탈락하는 사람의 번호와 자신의 몇번째 차례에 탈락하는지를 리스트에 담아 반환해라.
입력
n=3
words = ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"]
출력 [3,3]
중복 검증은 set을 이용해서 한다. words를 순회하면서 틀리지 않은 단어는 set에 넣고 그 set에 해당 단어가 있으면 틀렸다고 판단한다.
연산자 in
을 활용한다.
단어 검증은 list와 string의 slicing을 활용한다. 첫 단어는 index에러가 나므로 range(1,length)로 진행한다.
(i / n) 하면 float로 반환하지만 (i // n)을 쓰면 int로 반환한다.
def solution(n, words):
answer = [0, 0]
length = len(words)
used_words = set()
used_words.add(words[0])
for i in range(1, length):
if words[i] in used_words or words[i][0] != words[i-1][-1]:
person = (i % n) + 1
order = (i // n) + 1
return [person, order]
used_words.add(words[i])
return answer