본문 바로가기

백준 문제풀기/JAVA

[백준 28014 JAVA 자바] 첨탑 밀어서 부수기

밀려 넘어지는 첨탑의 높이가 바로 그다음 첨탑의 높이보다 클 때만 그다음 첨탑도 밀려 넘어집니다

 

예제에서 

1 3 2 5 8 1 인 경우

(1) (3 2) (5) (8 1) 이렇게 총 4번을 밀어야 합니다

 

i-1번째와 i번째를 비교해서

i-1 > i인 경우는 계속해서 넘어가고 (계속해서 넘어지기에)

i-1 <= i인 경우는 count ++를 해줘서 (추가로 밀어줘야 하기에)

총 몇번 밀어야하는지 계산해줍시다

 

코드입니다

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int m = Integer.parseInt(br.readLine());

        String[] input = br.readLine().split(" ");
        int[] arr = new int[m]; // m개의 막대기 길이를 담을 배열입니다

        for(int i=0; i<m; i++) {
            arr[i] = Integer.parseInt(input[i]); //split(" ")함수를 이용해줘서 한줄로 입력된 것을 분리하여 저장합니다
        }

        int count = 1; //기본적으로 1번은 밀어야하기에 초기값은 1입니다

        for(int i=1; i<m; i++) {
            if(arr[i] >= arr[i-1]) { //i-1 >= i인 경우에 count += 1을 해줍니다
                count += 1;
            }
        }

        System.out.print(count);
    }
}