function solution(n, words) {
let answer = Array.from(Array(n), () => Array(Math.ceil(words.length / n)).fill());
let copyWords = words.slice();
let preWords = copyWords.shift();
let curWords;
answer[0][0] = preWords;
let sequence = 1;
let count = 0;
let passWords = [preWords];
while (copyWords.length !== 0) {
curWords = copyWords[0];
copyWords = copyWords.slice(1);
if (curWords.length <= 1 ||
passWords.includes(curWords) ||
preWords[preWords.length - 1] !== curWords[0])
{
return [sequence + 1, count + 1];
}
if (preWords[preWords.length - 1] === curWords[0]) {
answer[sequence][count] = curWords;
preWords = curWords;
passWords.push(curWords);
sequence += 1;
if (sequence === n) {
sequence = 0;
count += 1;
}
}
}
return [0, 0];
}
문제를 풀기전에 수도코드를 미리 작성했다면 코드가 이렇게 지저분해지지 않았을것같고 이전에 말한 단어인지 확인할때 조건을 잘못 생각해서 푸는데 오래 걸렸던게 아쉬웠다.
좀더 간결하고 보기쉬운 코드로 재작성 해봐야겠다.