프로그래머스 영어 끝말잇기 (level 2)

나의 풀이 (풀이 시간 : 19분)

function solution(n, words) {
    if (words[0].length === 1) return [1,1];
    let map = new Map();
    map.set(words[0],1);
    for (let i = 1; i < words.length; i++) {
        if ((words[i-1][words[i-1].length-1] !== words[i][0]) || words[i].length === 1 || map.has(words[i])) {
            let p1 = (i+1) % n === 0 ? n : (i+1)%n;
            let p2 = Math.floor((i)/n)+1;
            return [p1, p2];
        } else {
            map.set(words[i], 1);
        }
    }

    return [0,0];
}

맵을 만들고, 단어가 업데이트 될 때마다 저장한다. words를 순회하면서 조건을 만족하지 않는다면 바로 리턴시킨다. 그렇지 않다면 map에 추가한다. 그리고 for문이 끝나면 자동으로 올바른 끝말잇기로 판단하고 [0,0]을 리턴한다.

좋은 웹페이지 즐겨찾기