본문 바로가기

프로그래머스

5/17[문제풀이] 프로그래머스 Lv2 영어 끝말잇기

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

 

해당 문제의 풀이 코드이다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function solution(n, words) {
    var answer = [0,0]; // ? 번째 사람이 ? 번째 차례에
    let talkWord = [];
    talkWord.push(words[0])
    for(let x = 1; x<words.length; x++) {
        let frontWord = words[x-1]
        let currentWord = words[x]
        if(frontWord[frontWord.length-1=== currentWord[0
            && talkWord.indexOf(currentWord) === -1) {
               talkWord.push(currentWord)
        } else {
            let people = x % n +1
            let place = parseInt(x/n) + 1
            return answer = [people, place]
        }
    }
    return answer;
}
cs

 

문제 자체를 이해하는데는 어렵지 않은 문제라 return 되어야 하는 형식으로 배열을 만들어주고

매개 변수인 words를 for 문으로 순회하면서 현재 들어가는 알파벳이 전에 들어갔던 문자의 마지막 알파벳과 같으면서 indexOf 메소드를 사용하여 전에 사용한 적이 없는 문자였다면 push 해주고

위의 조건에 부합하지 않는다면 그 사람(people)과 그 장소(place)를 찾는 코드를 구성했다.

위의 조건을 작성하는 것은 그리 어렵지 않았지만 people과 place를 도출해내는 코드를 작성해내는데 꽤나 큰 시간을 투자했던 것 같다.