잿꽃's posting Garden

프로그래머스에서 코딩테스트 연습9 - 영어 끝말잇기 본문

WEB/코딩테스트 연습

프로그래머스에서 코딩테스트 연습9 - 영어 끝말잇기

잿꽃 2022. 5. 27. 16:34

주어진 배열 안에서 끝말잇기에 일치하지 않거나 중복되는 단어가 있으면 몇 회째에 몇 번째 사람이 틀렸는지 찾는다.

 

ex) n = 3, words = ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"], return = [3,3]

3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3]

 

 

 

전에 끝말잇기를 한번 만들어 봤었어서 그나마 수월하게 진행...

 

기존의 값을 새로운 배열에 push하고 맨 뒷자리와 기존의 맨 앞자리가 같은지 비교한다.

또는 기존의 값들을 담은 새로운 배열에서 중복되는 단어가 있는지 확인한다.

찾으면 break를 통해 for문을 중단시키고 answer를 리턴하면 된다. 조건에 일치하는 경우가 없으면 입력된 배열이 모두 적절하게 된 것이므로 초기 값 [0,0]을 나타나게 된다.

function solution(n, words) {
    var answer = [0,0];
    let prev = [];
    for(let i = 1; i < words.length; i++){
        prev.push(words[i-1]);
        if(prev[i-1][prev[i-1].length-1] !== words[i][0] || prev.includes(words[i])){
            answer = [(prev.length%n)+1,Math.floor((prev.length/n))+1];
            break;
        }
    }
    return answer;
}
728x90
Comments