본문 바로가기
알고리즘/프로그래머스

[프로그래머스][자바스크립트][Level2] 영어 끝말잇기

by Benjamin_Choi 2022. 3. 5.

풀이

 

 

/**
 * 영어끝말잇기.js
 * https://programmers.co.kr/learn/courses/30/lessons/12981?language=javascript
 */

function solution(n , words) {
    const length = words.length + words.length % n;
    let order = null;
    
    for (let i = 1; i < length; i++) {
        const idx = i % words.length;
        const beforeWord = words[idx - 1];
        const currWord = words[idx];
        if (beforeWord[beforeWord.length - 1] !== currWord[0] || words.indexOf(words[idx]) !== i) {
            order = idx + 1;
            break;
        }
    }

    return order ? [order % n ? order % n : n, Math.ceil(order / n)] : [0, 0];
}

 

다음 내용을 고려해서 풀이했다. 

1. 끝말잇기 규칙 확인. 앞 단어의 끝 글자와 뒷 단어의 첫 글자 비교

2. 이미 존재하는 단어가 또 나왔는지 indexOf를 활용해서 확인

3. 순서를 확인한 다음 해당 순서를 나머지 값을 구해서 몇 번째 사람인지 구하고, 나눈 이후 반올림을 통해 몇 번째 차례인지 확인한다. 

댓글