[프로그래머스][풍선 터트리기]-Lv.3

호준·2022년 7월 21일
0

Algorithm

목록 보기
87/111
post-thumbnail

문제링크

🎃문제

🎃제한 사항

접근방법

다른분들의 코드를 참고했습니다
1. 주어진 배열의 양쪽 끝은 항상 남길 수 있다.
2. 인덱스 1번 ~ a.length-1번까지 탐색을 합니다.
2-1. i번째 요소가 left보다 작다면 left를 i번째 요소로 바꾸고 answer+1를 해준다.
2-2 a.length-1-i번째 요소가 right보다 작다면 right를 a.length-1-i번째 요소로 바꾸고 answer+1를 해준다.
2-3 주의, left와 right가 같다면 중복이 되었다는 의미이기 때문에 answer-1를 해주고 반복문을 종료한다.

코드

class Solution {
    public int solution(int[] a) {
        int answer = 2;
        int left = a[0];
        int right = a[a.length-1];
        int rightIndex = a.length-1;
        for(int i=1; i<a.length-1; i++){
            if(a[i] < left){
                left = a[i];
                answer++;
            }
            if(a[rightIndex-i] < right){
                right = a[rightIndex-i];
                answer++;
            }
            if(left == right){
                answer--;
                break;
            }
        }
        return answer;
    }
}
profile
도전하지 않는 사람은 실패도 성공도 없다

0개의 댓글