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

woolee의 기록보관소·2022년 11월 8일
0

알고리즘 문제풀이

목록 보기
87/178

문제 출처

프로그래머스 lev2 - 영어 끝말잇기

나의 풀이

function solution(n, words) {
  let answer = [0, 0];
  let tmp = [];
  tmp.push(words[0]);

  for (let i=1; i<words.length; i++) {

    let tp = tmp[tmp.length-1][tmp[tmp.length-1].length-1];
    if (tp === words[i][0] && !tmp.includes(words[i])) {
      tmp.push(words[i]);
    }
    else {
      answer[0] = (i+1)%n==0 ? n : (i+1)%n;
      answer[1] = Math.ceil((i+1)/n);
      break;
    }
  }
  return answer;
}

console.log(
  solution(2, ["hello", "one", "even", "never", "now", "world", "draw"]))

다른 풀이

function solution(n, words) {
  let answer = 0;
  words.reduce((prev, now, idx) => {
      answer = answer || ((words.slice(0, idx).indexOf(now) !== -1 || prev !== now[0]) ? idx : answer);
      return now[now.length-1];
  }, "")

  return answer ? [answer%n+1, Math.floor(answer/n)+1] : [0,0];
}

console.log(
  solution(2, ["hello", "one", "even", "never", "now", "world", "draw"]))
profile
https://medium.com/@wooleejaan

0개의 댓글