반응형
문제
Summer/Winter Coding(~2018) - 영어 끝말잇기
https://school.programmers.co.kr/learn/courses/30/lessons/12981
예시 코드
function solution(n, words) {
const spokenWords = new Set();
let lastChar = words[0][0];
for (let i = 0; i < words.length; i++) {
const currentWord = words[i];
const player = (i % n) + 1;
const round = Math.floor(i / n) + 1;
if (currentWord[0] !== lastChar || spokenWords.has(currentWord))
return [player, round];
spokenWords.add(currentWord);
lastChar = currentWord.at(-1);
}
return [0, 0];
}
풀이
사람의 수 n과 사람들이 순서대로 말한 단어 words가 주어질 때, 가장 먼저 탈락하는 사람의 번호와 그 사람이 자신의 몇 번째 차례에 탈락하는 지를 구하는 문제입니다.
이미 말한 단어는 다시 말할 수 없고, 마지막에 말한 단어의 글자로 시작해야 합니다.
중복 여부를 확인하기 위해 Set을 사용합니다.
현재 플레이어는 다음과 같이 구할 수 있습니다.
const player = (i % n) + 1;
현재 플레이어의 몇 번째 차례인지는 다음과 같이 구할 수 있습니다.
const round = Math.floor(i / n) + 1;
'Coding Problem' 카테고리의 다른 글
[프로그래머스] 카펫 (0) | 2024.12.01 |
---|---|
[프로그래머스] 점프와 순간 이동 (0) | 2024.11.30 |
[프로그래머스] 택배상자 (0) | 2024.11.28 |
[프로그래머스] PCCP - 퍼즐 게임 챌린지 (0) | 2024.11.27 |
[프로그래머스] 줄 서는 방법 (0) | 2024.11.26 |