알고리즘
[프로그래머스] 영어 끝말잇기
j9972
2023. 6. 28. 15:56
728x90
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/12981
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
2. 접근
1. 이 문제는 문제를 천천히 따라가면 된다.
2. words에서 단어를 하나씩 뽑는다
3. check라는 리스트를 만들고 len(check) == 0이면, word를 넣어주고, 길이가 0이 아니라면 check리스트의 가장 마지막단어의 가장 마지막 문자와 word의 첫번째 문자와 비교를 해서 같다면 넣어주고 틀리다면, 사람수, 차례를 증가시켜 종료시켜 준다
4. 단어마다 사람 수는 증가하는데 사람수(ppl) == n+1 이라면, 한바퀴 돈거니까 ppl = 1, turn += 1해준다!!
3. 풀이
def solution(n, words):
ans = [0,0]
check = []
turn = 1
ppl = 0
while len(words) != 0:
word = words.pop(0)
if word not in check:
if len(check) == 0:
check.append(word)
else:
if check[-1][-1] == word[0]:
check.append(word)
else:
ppl += 1
if ppl == n+1:
ppl = 1
turn += 1
ans = [ppl,turn]
break
else:
ppl += 1
if ppl == n+1:
ppl = 1
turn += 1
ans = [ppl,turn]
break
ppl += 1
if ppl == n+1:
ppl = 1
turn += 1
return ans