문제 출처
프로그래머스 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"]))