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
'IT > 알고리즘' 카테고리의 다른 글
[파이썬 알고리즘 문제] 짝지어 제거하기 (0) | 2023.05.22 |
---|---|
[파이썬 알고리즘 문제] 최댓값과 최솟값 (0) | 2023.05.22 |
[파이썬 알고리즘 문제] 신규 아이디 추천 (0) | 2023.04.07 |
[파이썬 알고리즘 문제] 가장 큰 수 (0) | 2023.03.26 |