나의 풀이
def solution(n, words):
check_list=[0]*(n)
#체크리스트의 index+1은 사람의 번호를 의미한다.
#체크리스트의 value는 각 사람의 "차례"를 의미한다.
check_list[0]=1
stack=[words[0]]
for i in range(1, len(words)):
if words[i-1][-1] == words[i][0]:
stack.append(words[i])
check_list[i%n]+=1
if stack.count(words[i])== 2:
return [(i%n)+1, check_list[i%n]]
else:
check_list[i%n]+=1
return [(i%n)+1, check_list[i%n]]
#끝말잇기가 정상적으로 종료된 경우
else:
return [0,0]
▶ 체크리스트의 index+1은 사람의 번호를 의미한다.
다른 사람의 풀이
def solution(n, words):
answer = []
turn = 0
wordList = [words[0]]
for idx in range(1, len(words)):
if words[idx-1][-1] != words[idx][0]:
turn = idx
break
if words[idx] in wordList:
turn = idx
break
wordList.append(words[idx])
answer = [turn%n +1, turn//n + 1]
if turn == 0:
answer = [0, 0]
return answer
▶ turn%n+1은 index이고
▶ turn//n+1은 번호의 차례가 된다.
'프로그래머스(파이썬) > LV.2(파이썬)' 카테고리의 다른 글
N개의 최소공배수→연쇄법칙★ + if not stack: 스택이 비어있다면 (0) | 2022.12.24 |
---|---|
구명보트→ 침몰하는 타이타닉(그리디)★★ (0) | 2022.12.24 |
짝지어 제거하기→크레인 인형 뽑기와 유사★★ (0) | 2022.12.24 |
카펫→ 약수는 제곱근까지만 구하기, 2차원 리스트 요소2개 x,y로 접근★★ (0) | 2022.12.24 |
다음 큰 숫자★→count()함수, int('숫자문자열', n)→n진법의 '숫자문자열'을 10진수로 (0) | 2022.12.24 |