[프로그래머스#JS] 영어 끝말잇기

dongwon·2021년 5월 6일
0

프로그래머스-Level 2

목록 보기
30/33

문제

영어 끝말잇기 https://programmers.co.kr/learn/courses/30/lessons/12981

해결

같은 단어를 2회 이상 말하거나, 영어가 이어지지 않으면 실패합니다.
진행된 횟수를 세어 몇 round, 몇 번째인지 계산했습니다.

  1. 같은 단어를 2번 이상
    객체를 이용해 빈도수 체크했습니다.
  2. 첫 글자와 마지막 글자 비교
  3. 시도 횟수 % 인원 수가 0이면 마지막 사람, round는 나눈 값에 +1, 0이 아니라면 나머지 값이 순서, 나눈 값이 round입니다.

코드

function solution(n, words) {
  let temp = 0;
  const stack = [];

  let edgeStr = words[0][words[0].length - 1];
  let firstStr = "";
  stack[words[0]] = 1;

  for (let i = 1; i < words.length; i++) {
    firstStr = words[i][0];

    if (firstStr !== edgeStr) {
      temp = i + 1;
      break;
    }

    stack[words[i]] = (stack[words[i]] | 0) + 1;

    if (stack[words[i]] === 2) {
      temp = i + 1;
      break;
    }

    edgeStr = words[i][words[i].length - 1];
  }

  const index = temp % n === 0 ? temp / n : parseInt(temp / n) + 1;
  const round = temp % n === 0 ? n : temp % n;

  return temp === 0 ? [0, 0] : [round, index];
}
profile
데이원컴퍼니 프론트엔드 개발자입니다.

0개의 댓글