FE PARADISE

프로그래머스 영어 끝말잇기 - 자바스크립트 풀이 본문

자료구조 & 알고리즘

프로그래머스 영어 끝말잇기 - 자바스크립트 풀이

PARADISE247 2025. 1. 1. 22:33
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/12981

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

전체 코드

function solution(n, words) {
    let index = -1;
    
    for(let i=1; i<words.length; i++){
        let lastWord = words[i-1].split("").at(-1);
        let firstWord = words[i][0];
        if(words.indexOf(words[i]) !== i || firstWord !== lastWord) {
            index = i;
            break;
        }
    }
    
    if(index < 0) return [0,0];
    
    return [index % n + 1, Math.ceil((index+1)/n)];
    
}

 

풀이

끝말잇기에서 탈락하는 경우는 두 가지 이다.

1. 이전에 등장했던 단어를 말하는 경우

2. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어가 아닌 단어를 말한 경우

우선 끝말잇기에서 탈락한 사람이 말한 단어의 인덱스를 찾아보자.

 let index = -1;
    
for(let i=1; i<words.length; i++){
	let lastWord = words[i-1].split("").at(-1);
    let firstWord = words[i][0];
    if(words.indexOf(words[i]) !== i || firstWord !== lastWord) {
    	index = i;
        break;
	}
}

for 문을 돌면서 words 배열 내의 단어를 순서대로 확인한다. 위에서 말한 탈락되는 조건에 해당하는 경우라면 해당 인덱스를 index 변수에 저장한다. 

if(index < 0) return [0,0];

만약 index가 -1이라면 탈락 조건에 해당하는 단어가 없는 것이므로 [0, 0]을 반환한다. 

return [index % n + 1, Math.ceil((index+1)/n)];

탈락 조건에 해당하는 단어가 있는 경우 위와 같이 [탈락된 사람의 번호, 몇번째 차례에 탈락했는지] 반환한다.

반응형