끝말잇기는 1부터 n까지 순서대로 증가하다가 다시 돌아와 1부터 n까지 순서대로 증가한다.(해당 과정 반복)
탈락이 발생한 위치(인덱스 + 1)이 n의 배수이냐, 아니냐로 조건이 나뉘게 된다.
function solution(n, words) {
// words를 차례대로 순회
// words[i]의 끝 글자를 매 순회 때마다 저장 => 끝말잇기 룰을 지키는지 확인하기 위해
// 한번 순회 때마다 말한 단어 또한 저장 => 중복 검사를 위해
// 위 두 가지 중 한 가지에 위반되면 탈락
// 탈락자는 해당 (인덱스 + 1)를 n으로 나눈 나머지 번째 사람임
// 그럼 탈락 텀은 (인덱스 + 1)를 n으로 나눈 몫 + 1
let last = words[0][words[0].length - 1]
const duplicate = [words[0]]
for(let i = 1; i < words.length; i++) {
if(!duplicate.includes(words[i]) && words[i][0] === last) {
duplicate.push(words[i])
last = words[i][words[i].length - 1]
} else {
if((i + 1) % n === 0) {
const person = n
const term = Math.floor((i + 1) / n)
return [person, term]
} else {
const person = (i + 1) % n
const term = Math.floor((i + 1) / n) + 1
return [person, term]
}
}
}
return [0, 0]
}