728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12981
분석
사람의 수 n과 사람들이 순서대로 말한 단어 words 가 매개변수로 주어질 때,
가장 먼저 탈락하는 사람의 번호와 그 사람이 자신의 몇 번째 차례에 탈락하는지를 구해서 return
- 사용 단어 목록에 있거나, 끝말이 안맞을 때
- [탈락자 번호, 자신의 몇번째 차례] = [ 단어 순서 ÷ 전체 단어 나머지 + 1, 단어 순서 ÷ 전체 단어 몫 + 1] = [(p%n)+1, (p//n)+1]
풀이
from collections import deque
import math
def solution(n, words):
answer = []
q=deque()
for i,x in enumerate(words):
q.append(((i%n)+1,x))
cnt=0
d=set()
pre=''
while q:
cnt+=1
i,x = q.popleft()
if pre!='' and pre[-1]!=x[0]:
return [i, math.ceil(cnt/n)]
if x in d:
return [i, math.ceil(cnt/n)]
else:
d.add(x)
pre=x
return [0,0]
def solution(n, words):
for p in range(1, len(words)):
if words[p][0] != words[p-1][-1] or words[p] in words[:p]:
return [(p%n)+1, (p//n)+1]
else:
return [0,0]
728x90