catbook 종원's 블로그 이사 온 블로그

프로그래머스Lv2 영어 끝말잇기

» Algorithm

문제

1~n까지 번호가 붙어있는 n명의 사람이 다음과 같은 규칙으로 영어끝말잇기를 하고있다.
1) 1번부터 한사람씩 차례대로 단어를 말합니다.
2) 마지막 사람이 말한 다음에는 다시 1번부터 시작합니다.
3) 이전에 등장했던 단어를 말하면 탈락합니다.
4) 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말하지 않으면 탈락합니다.
5) 한글자인 단어는 인정되지않습니다.

가장 먼저 탈락하는 사람의 번호와 몇번쨰에 탈락하는지 리턴하시오. 아무도 탈락하지 않는다면 [0, 0]을 리턴하시오.






접근법

주어진 조건대로 그냥 진행함.






코드

def solution(n, words):
    index = 0
    for idx, item in enumerate(words):
        if idx > 0:
            if (item[0] != words[idx-1][-1]) or (item in words[:idx]):
                index = idx
                break
    if index == 0:
        return [0, 0]
    return [index % n + 1, index // n + 1]






다른사람풀이

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]