12981. 영어 끝말잇기

2025-12-04
프로그래머스 12981번 풀이

이 글은 Obsidian에서 마이그레이션되었으며, 그 과정에서 AI의 도움을 받았습니다. 오류나 누락된 내용이 있다면 댓글로 알려주세요!

문제

코딩테스트 연습 - 영어 끝말잇기 | 프로그래머스 스쿨

풀이

아이디어

중복 단어를 세어주기 위해서는 Set을 사용했다. words를 순회하면서 끝말 규칙과 중복 단어 여부를 확인해주고, 탈락자가 발생하면 그 순서를 통해서 탈락자 번호와 순서를 계산해서 반환해줬다.

코드

function solution(n, words) {
  const wordSet = new Set();
  wordSet.add(words[0]);

  for (let cur = 1; cur < words.length; cur++) {
    if (wordSet.has(words[cur]) || words[cur - 1].at(-1) !== words[cur].at(0)) {
      const loser = (cur % n) + 1;
      const round = parseInt(cur / n) + 1;
      return [loser, round];
    } else {
      wordSet.add(words[cur]);
    }
  }

  return [0, 0];
}