[프로그래머스] 영어 끝말잇기 (파이썬)

dongEon·2023년 4월 4일
0

난이도 : LV 2

문제링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12981

문제해결 아이디어

  • 딕셔너리를 이용한 해시 테이블 문제.
  • 이전의 단어를 tmp에 저장하고 tmp의 마지막과 새로들어온 단어의 첫번째를 비교하고, 일치하면 딕셔너리 키에 저장한다.
  • 딕셔너리 키에 이미 존재하거나 tmp의 마지막과 다르면 break 하고 인덱스를 통해 정답을 구한다.
  • for문을 끝까지 순회하면 틀린사람이 없으므로 [0,0]을 리턴한다

소스코드

def solution(n, words):
    w = dict()
    tmp = ''
    for i in range(len(words)):
        if tmp:
            if tmp[-1] != words[i][0] or words[i] in w:
                ans = [i%n+1, i//n + 1]
                break
            else:
                tmp = words[i]
                w[words[i]] = 1
        else:
            tmp = words[i]
            w[words[i]] = 1
    else:
        ans = [0,0]    
    
    return ans
                
profile
개발 중에 마주한 문제와 해결 과정, 새롭게 배운 지식, 그리고 알고리즘 문제 해결에 대한 다양한 인사이트를 공유하는 기술 블로그입니다

0개의 댓글