Programmers/프로그래머스-영어 끝말잇기-python

cosmos·2022년 8월 3일
0
post-thumbnail
post-custom-banner

문제

풀이

  • 입력받은 단어를 반복문으로 하나씩 순회하면서 반복문 현재 요소의 단어를 dictionary에 할당하면서 중복 단어인지 체크하였다.
  • 또한 tmp라는 변수를 만들어서 이전 단어와 현재 단어가 끝말잇기가 성립하는지를 체크하였으며 위 두 가지 조건에 성립하지 않을 시, break 성립하면 [0, 0] 을 반환하도록 구현하였다

코드

# https://school.programmers.co.kr/learn/courses/30/lessons/12981
# programmers, level2: 영어 끝말잇기, python3
def solution(n: int, words: list) -> list:
    dict, tmp, answer = {}, '', []

    for index, word in enumerate(words):
        if not tmp:
            tmp = word
            dict[word] = 1
            continue
        if tmp[-1] != word[0] or word in dict:
            answer = [index % n +1, index // n + 1]
            break

        dict[word] = 1
        tmp = word

    return answer if answer else [0, 0]

if __name__ == '__main__':
    print(solution(3, ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"]))  # [3, 3]
    print(solution(5, ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"]))  # [0, 0]
    print(solution(2, ["hello", "one", "even", "never", "now", "world", "draw"]))  # [1, 3]
    print(solution(2, ['land', 'dream', 'mom', 'mom', 'ror']))  # [2, 2]
    print(solution(2, ['land', 'dream', 'mom', 'mom']))   # [2, 2]

결과

출처 & 깃허브

programmers 영어 끝말잇기
Github

post-custom-banner

0개의 댓글