알고리즘문제

프로그래머스 > 영어 끝말잇기

단점이없어지고싶은개발자 2022. 10. 26. 20:02
반응형

function solution(n, words) {
    let keyword = words[0];
    let count = 1;
    
    for (let i = 1; i < words.length; i++) {
        const player = i % n + 1;
        //for문을 돌면서 player수를 계산해준다.
        if (keyword.slice(-1) !== words[i][0]) {
        //처음 단어의 끝과 그 다음 단어의 첫 번째가 맞는지 확인하는 로직
            return [player, count];
        }
        
        if (words.findIndex(word => words[i] === word) !== i) {
        //findIndex로 중복된 단어가 있는지 찾아준다. 
            return [player, count];
        }
        
        keyword = words[i];
        //위에 로직이 다 해당하지 않으면 해당 문자열을 keyword로 바꾼다.
        if (player === n) count++;
        //player는 순차적으로 돌고 n일 때 몇 번째로 도는지 확인하기위해 count를 더해준다.
    }
    return [0, 0];
}
반응형