IT/알고리즘
[파이썬 알고리즘 문제] 영어 끝말잇기
굶지마🦐
2023. 5. 22. 00:58
728x90
728x90
1. 문제 정보
- 출처: 프로그래머스(https://school.programmers.co.kr/learn/courses/30/lessons/12981)
- 난이도: 레벨 2
2. 접근 방법
- 마지막 사람 다음 차례는 첫 번째 사람이다 → % 연산으로 주어진 n명 인원 순번을 돌리면 되겠다
- 앞 사람이 말한 단어를 또 말하면 탈락 → 앞 사람이 말한 단어는 set() 또는 list()에 저장해서 탐색하자
- n명이 한 번씩 말해야 전체 한 번씩 말한 것 → 몇 번째 차례에 틀렸는지는 // 연산을 사용하면 쉽게 구하겠다
3. 코드
def solution(n, words):
prev_word = ""
used_words = set()
for idx, word in enumerate(words):
turn_people = idx % n + 1
turn_num = idx // n + 1
if not prev_word == "" and (not prev_word[-1] == word[0] or word in used_words):
return [turn_people, turn_num]
else:
prev_word = word
used_words.add(word)
return [0,0]
320x100