코딩테스트 영어 끝말잇기 문제풀이

프로그래머스 영어 끝말잇기(level 2) 문제풀이

def solution(n, words):
    data = [words[0]]
    cnt = 1
    same = words[0][-1]
    for i in range(1, len(words)):
        cnt += 1
        if words[i].startswith(same) and words[i] not in data:
            same = words[i][-1]
            data.append(words[i])
        else:
            if cnt%n == 0:
                return [n, cnt//n]
            else:
                return [cnt%n, cnt//n+1]
    return [0, 0]

일단 끝말잇기에 관해서는 startswith를 사용해서 맞는 지 그리고 data리스트에 값을 넣어가면서 그 값이 data리스트에 있는 값인지를 확인하면서 반복문을 돌렸다.

그리고 만약 아닐 시 두 경우를 나눠서 값을 리턴했는데
1. cnt%n == 0인 경우 번호가 0이 되므로 n으로 넣고, 횟수가 딱 맞으므로 c//n (나중에 보면 이해가 갈라나.. 설명을 못해서)
2. cnt%n != 0인 경우 번호가 딱 맞게 나옴, 그리고 차례가 cnt%n이 있으므로 cnt//n에 1을 더해줘야함

좋은 웹페이지 즐겨찾기