// https://school.programmers.co.kr/learn/courses/30/lessons/12981
function solution(n, words) {
let answer;
let playerNumber = 1;
let turn = 1;
const pastWords = [];
for(let i = 0; i <words.length; i++){
if(
// 한글자인지 아닌지 확인합니다.
checkOneWord(words[i]) ||
// 중복 확인
checkSameWord(pastWords,words[i]) ||
// 앞뒤 비교를 해야하니 첫번째가 아닐때만 앞 단어의 마지막 글자와 뒷 단어의 첫 글자가 다르면
(i && checkLastWord(words[i-1],words[i]))
){
answer = [playerNumber,turn]
break;
}
// 플레이어 순서 확인 및 차례 관리
if(playerNumber < n){
playerNumber ++
} else {
playerNumber = 1
turn ++
}
// 중복 확인을 위한 사용한 단어 배열 생성
pastWords.push(words[i])
}
return answer || [0,0];
}
const checkLastWord = (pastWord,currentWord) => {
return pastWord.substr(-1) === currentWord.substr(0,1) ? false : true
}
const checkOneWord = (string) => {
return string.length === 1 ? true : false
}
const checkSameWord = (pastWords,word) => {
return pastWords.includes(word);
}
Comment