[Python][프로그래머스 Lv.2] 영어 끝말잇기

1jinju·2023년 10월 9일
0

프로그래머스

목록 보기
10/14

영어 끝말잇기

def solution(n, words):
    l = [] # 지나간 단어
    for i, v in enumerate(words):
        if len(l) == 0: # l이 비어 있다면 words의 원소 추가
            l.append(v)
        # 앞 단어의 마지막 문자와 현재 단어의 첫 번째 문자가 다르거나
        # 현재 단어가 이미 l에 있는 경우
        elif l[-1][-1] != v[0] or v in l: 
            return [n if (i+1)%n == 0 else (i+1)%n, (i+1)//n if (i+1)%n == 0 else (i+1)//n+1]
        else:
            l.append(v)
    # 주어진 단어들로 탈락자가 생기지 않는다면
    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]

so 간단 ..
그래도 성능 측면에서 차이는 없어 보인다.

profile
아자잣

0개의 댓글