n명의 인원이 참가한 영어 끝말잇기 게임에서 진행된 words라는 문자열 배열을 받아 정상적으로 진행이 되어 있는지 확인하시오.
2 ~ 10의 자연수n ~ 100 [0,0]출력| n | words | result |
|---|---|---|
| 3 | ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] | [3,3] |
| 5 | ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] | [0,0] |
| 2 | ["hello", "one", "even", "never", "now", "world", "draw"] | [1,3] |
Set을 이용하여 자료 확인, 길이, 추가 등을 쉽게 풀어나간다.trigger에 끝의 알파벳을 넣어주고, 다음 언어의 시작과 똑같은지 확인한다.function solution(n, words) {
var answer = [0,0];
let set = new Set();
let trigger = ''
let i = 0
function ansfunc (size){
if (size % n === 0) {
answer[0] = n
answer[1] = Math.ceil(size / n)
}
else {
answer[0] = size % n
answer[1] = Math.ceil(size / n)
}
}
while(i < words.length){
if(set.has(words[i])) {
ansfunc(set.size+1)
return answer
}
else if(i !== 0 && trigger !== words[i][0]){
ansfunc(set.size+1)
console.log(words[i])
return answer
}
set.add(words[i])
trigger = words[i][words[i].length-1]
i++
}
return answer;
}