[프로그래머스] 풍선 터트리기

adultlee·2023년 6월 12일
0

프로그래머스 3단계

목록 보기
23/39
post-custom-banner

문제 링크

프로그래머스 문제

풀이

다소 어려운 문제였습니다. 다음에 유의하여 문제를 풀어야만 합니다.
1. 꼭 살아남는 풍선은 어떤것인가?
2. 살아남는 풍선들을 기준으로 나눌수 있는 3 영역에서는 어떤 규칙을 고려하여 풍선이 살아남는가?
3. 흩어지는 방향으로 정렬이 되어 있는것이 오래 살아남는다.

코드


function solution(a) {
    var answer = 2;
    // 가장 작은 값과 두번째로 작은 값을 찾는다.
    
    let smallest_number = Number.POSITIVE_INFINITY;
    let smallest_number_index = -1;
    let second_smallest_number = Number.POSITIVE_INFINITY;
    let second_smallest_number_index = -1;
    
    
    // 가장 작은 값 찾기
    for(let i=0; i< a.length; i++){
        if(a[i] <smallest_number){
            smallest_number =  a[i]
            smallest_number_index = i
        }
        
    }

    //두번째로 작은 값 찾기
    for(let i=0; i< a.length; i++){
        if(smallest_number < a[i] && a[i] < second_smallest_number){
            second_smallest_number = a[i]
            second_smallest_number_index = i
        }
    }
    // 비교
   
    
    const [key1 , key2] = [second_smallest_number_index,smallest_number_index ].sort((a,b)=>a-b)
   
    
    // 좌측 확인
    let leftMin = Number.POSITIVE_INFINITY;
    
    for(let i = 0; i < key1; i++){
        if(a[i] < leftMin){
            answer++;
            leftMin = a[i];
        }
    }
    // 우측 확인
    let rightMin = Number.POSITIVE_INFINITY;
    for(let i = a.length-1; i>key2; i--){
        if(a[i] < rightMin){
            answer++;
            rightMin = a[i];
        }
    }
    
    
    return answer;
}

 
post-custom-banner

0개의 댓글