본문 바로가기
일반 학습/코딩 테스트

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

by StelthPark 2022. 3. 28.

처리조건

풀이

이미 사용한 단어는 useWord2에 담아주며 새 단어를 받을 때 마다 useWord2에 속한 단어인지 확인한 뒤 자신의 단어 맨 앞과 이전사람이 뱉은 단어의 뒤가 일치 한다면useWord2에 담아준다. for문을 돌릴 것인데 i가 0이라면 아무 단어도 아무 제약도 없으니 그냥 useWord2에 담아준다. i가 1 이상이라면 위 if문으로 처리하고 만약 useWord2에 있는 단어가 또 들어가려한다거나, 자신의 앞단어가 이전 사람이 뱉은 단어 맨 뒤랑 같지 않다면 현재 순서와 자신의 번호를 리턴한다. 만약 리턴없이 for문이 끝나면 아무 문제 없는 게임이므로 [0,0]을 리턴한다.

 

function solution(n, words) {
  const useWord2 = [];

  for (let i = 0; i < words.length; i++) {
    if (i === 0) {
      useWord2.push(words[i]);
    } else if (i >= 1) {
      if (useWord2.includes(words[i]) === false && words[i][0] === words[i - 1][words[i - 1].length - 1]) {
        useWord2.push(words[i]);
      } else if (useWord2.includes(words[i]) === true || words[i][0] !== words[i - 1][words[i - 1].length - 1]) {
        return [(i % n) + 1, Math.ceil((i + 1) / n)];
      }
    }
  }
  return [0, 0];
}

 

 

 

댓글