알고리즘/프로그래머스 문제풀이

[프로그래머스] lv.2 영어 끝말잇기 풀이

감자156 2023. 11. 19. 20:34
반응형

문제

https://school.programmers.co.kr/learn/courses/30/lessons/12981

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 풀이

words를 순회하면서 딕셔너리에 하나씩 추가함.

딕셔너리 형태는

{'첫글자':[word1, word2, ...] , ... } 꼴로 만들어서 이전에 등장한 word를 찾을 때의 cost를 최소화 함..

 

words를 순회하면서 뒷글자를 ex_end로 저장해 끝말잇기 틀린 사람있으면 return 

 

코드

def solution(n, words):
    already_ = dict()
    already_[words[0][0]] = [words[0]]
    
    for i in range(1,len(words)): 
        cur_first = words[i][0]
        ex_end = words[i-1][-1]
        
        if cur_first != ex_end:
            return [i%n+1, i//n +1]
            
        if cur_first in already_:
            if words[i] in already_[cur_first]:
                return [i%n+1, i//n +1]
            already_[cur_first].append(words[i])
        else:
            already_[cur_first] = [words[i]]
    return [0, 0]
반응형