코딩테스트 연습 - 영어 끝말잇기 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 요약
1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다.
- 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다.
- 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다.
- 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다.
- 이전에 등장했던 단어는 사용할 수 없습니다.
- 한 글자인 단어는 인정되지 않습니다.
example )
tank → kick → know → wheel → land → dream → mother → robot → tank
- 매개변수
사람의 수 n
사람들이 순서대로 말한 단어 words
- return 값
가장 먼저 탈락하는 사람의 번호
그 사람이 자신의 몇 번째 차례에 탈락하는지
문제 풀이
def solution(n, words):
used = [words[0]]
for i in range(1, len(words)):
# 한글자 단어
if len(words[i]) == 1:
return [i%n+1, i//n+1]
# 끝말잇기 규칙
if words[i-1][-1] != words[i][0]:
return [i%n+1, i//n+1]
else:
# 사용된 단어 재사용
if words[i] in used:
return [i%n+1, i//n+1]
else:
used.append(words[i])
return [0,0]
'CODING TEST > ALGORITHM - 문제' 카테고리의 다른 글
[프로그래머스/2020 KAKAO BLIND RECRUITMENT] 괄호 변환 - Python (0) | 2023.02.04 |
---|---|
[백준 : 14499] 주사위 굴리기 - Python (1) | 2023.02.01 |
[백준 : 14891] 톱니바퀴 - Python (0) | 2023.01.16 |
[카카오 인턴십/프로그래머스] 수식 최대화 - Python (0) | 2023.01.13 |
[2023 KAKAO BLIND RECRUITMENT/프로그래머스] 개인정보 수집 유효기간 - Python (0) | 2023.01.12 |