프로그래머스 Level 1 - 햄버거 만들기

크롱·2024년 1월 29일
0

코딩테스트

목록 보기
58/61

내 풀이

function solution(ingredient) {
    var answer = 0;
    
    for(let i=0;i<ingredient.length;i++){
        if(ingredient[i]==1&&ingredient[i+1]==2
           &&ingredient[i+2]==3&&ingredient[i+3]==1){
          
            ingredient.splice(i,4)
            if(i==1){
                i=i-2
            }else if(i==0){
                i=i-1
            }else{
                i=i-3
            }
                console.log()
            
            answer++
        }
    }
    return answer;
}

예를들어 [2,1,1,2,3,1,2,3,1]에서 index 2번째인 1을 검사할때, if 문 조건식이 참이된다. 그래서
ingredient.splice(i,4)을 해주면 1,2,3,1이 삭제됨.
i는 현재 i보다 2가 작은 숫자에서 다시 검사를 해줘야한다.
만약 현재 i가 1이나0이라면, 인덱스 0부터 다시 검사를 해야함. 그래서 저런 로직을 만들어줌.

다른 풀이

function solution(ingredient) {
    let stk = [];
    let count = 0;
    for (let i = 0; i < ingredient.length; i++) {
        stk.push(ingredient[i]);
        if (
            stk[stk.length-1] === 1 &&
            stk[stk.length-2] === 3 &&
            stk[stk.length-3] === 2 &&
            stk[stk.length-4] === 1
        ) {
            count++;
            stk.splice(-4); //마지막4개를 없애줌.
        }
    }
    return count;
}

arr.splice(-4)

const hey = [1,2,3,4,5,6,7]
hey.splice(-4) // [4, 5, 6, 7]
hey //[1,2,3]
profile
👩‍💻안녕하세요🌞

0개의 댓글