Algorithm/1일 1코테
[💕 프로그래머스 Python] 영어 끝말잇기
대인보우
2020. 11. 1. 17:32
반응형
📌
문제
programmers.co.kr/learn/courses/30/lessons/12981
코딩테스트 연습 - 영어 끝말잇기
3 [tank, kick, know, wheel, land, dream, mother, robot, tank] [3,3] 5 [hello, observe, effect, take, either, recognize, encourage, ensure, establish, hang, gather, refer, reference, estimate, executive] [0,0]
programmers.co.kr
📌
내 풀이
def solution(n, words):
aleady = [] # 이미 말했던 단어
player = 0 # 플레이어 번호
count = 1 # 게임 라운드
lastword = '' # 그전 단어
for i in range(len(words)):
player += 1 # 1번부터 시작
if i == 0: # i=0이면 lastword가 없으므로 더해주고 continue
lastword = words[i]
aleady.append(words[i])
continue
if words[i][0] != lastword[-1]: # 지금 첫단어랑 마지막단어랑 다르면
return player, count # return
elif words[i][0] == lastword[-1]: # 같으면
if words[i] in aleady: # 근데 이미 말한 단어면
return player, count # return
else: # 아니면
aleady.append(words[i])
lastword = words[i]
# 플레이어 리셋 및 라운드 +1
if i%n == n-1:
player = 0
count += 1
continue
return [0,0] # 아무 이상 없으면 return
📌
다른사람 풀이
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]
반응형