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

문린이·2022년 11월 9일
0

문제설명

문제예시

문제풀이 & 결과

문제풀이

function solution(n, words) {
    const checkArr =[] 
    for(let i = 1; i < words.length; i++){ 
        checkArr.push(words[i-1]);
        if(words[i].charAt(0) !== words[i-1].charAt(words[i-1].length - 1)){
            return([i % n + 1, (parseInt(i / n)) + 1]) 
        for(let j = 0; j < checkArr.length; j++){
            if(checkArr[j] === words[i]){
               return([i % n + 1, (parseInt(i / n)) + 1])
            }
        }
    }
    return [0, 0]
}
  1. 주어진 배열을 1번째 인덱스부터 for문을 돌립니다.

  2. 돌리면서 checkArrwords에 0번째(i-1) 값부터 추가합니다.

  3. if문과 charAt을 활용하여 i번째의 첫 번째 글자와 i-1번째의 마지막 글자가 다른지 확인합니다.

  4. 다르다면 가장 먼저 탈락하는 사람의 번호와 그 사람이 자신의 몇 번째 차례에서 탈락하는지를 알아야 한다.
    그러기 위해 가장 먼저 탈락하는 사람의 번호는 i를 n으로 나눈 몫에 1을 더하고
    자신의 몇 번째 차례에서 탈락하는지는 i를 n으로 나눈 나머지에 1을 더하는 방식으로 구할 수 있다.

  5. for문안에 앞에서 푸쉬한 checkArr를 다시 for문을 돌립니다.

  6. if문을 활용하여 같은 단어를 말한 사람이 있는지 찾고 4번과 같은 방식으로 번호와 차례를 구합니다.

  7. 앞에 모든 상황을 다 통과한다면 [0, 0]을 리턴합니다.

결과

profile
Software Developer

0개의 댓글