Algorithm/프로그래머스 문제풀이

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

너지살 2022. 6. 2. 01:11

 

 

문제출저 : 

https://programmers.co.kr/learn/courses/30/lessons/68646

 

코딩테스트 연습 - 풍선 터트리기

[-16,27,65,-2,58,-92,-71,-68,-61,-33] 6

programmers.co.kr

 

 

소스코드 : 

// 양쪽 풍선의 최소값이 둘 다 작으면 마지막까지 남을 수 없다.

import java.util.*;

class Solution {
    public int solution(int[] a) {
        int answer = 0;
        
        int n = a.length;
        
        if(n == 1)
            return 1;
        
        int[] left = new int[n];
        int[] right = new int[n];
        
        int lnum = a[0];
        int rnum = a[n - 1];
        
        left[0] = a[0];
        right[n-1] = a[n-1];
        
        for(int i = 1; i < n; i++)
        {
            if(lnum > a[i]) lnum = a[i];
            left[i] = lnum;
        }
        
        for(int i = n-2; i >= 0; i--)
        {
            if(rnum > a[i]) rnum = a[i];
            right[i] = rnum;
        }
        
        // System.out.println(Arrays.toString(left));
        // System.out.println(Arrays.toString(right));
        
        for(int i = 0; i < n; i++)
        {
            if(a[i] > left[i] && a[i] > right[i]) continue;
            else
                answer += 1;
        }
        
        
        
        
        return answer;
    }
}