알고리즘/프로그래머스 문제풀이
[프로그래머스] 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]
반응형