알고리즘

백준 17608번 막대기 (JAVA)

박카스마시며코딩 2023. 5. 13. 21:00

https://www.acmicpc.net/problem/17608

 

17608번: 막대기

아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로

www.acmicpc.net

 

저는 구현을 통해 문제를 해결하였습니다.

오른쪽에서 보이는 것은 이전에 보인 기둥 보다 커야 보이기 때문에 이전에 가장 큰 기둥의 길이보다 크다면 cnt늘리주고 마지막에 이 값을 출력하였습니다.

 

package BOJ.etc;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.function.Function;

public class BOJ_17608 {

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int[] input = new int[n];
        for(int i = 0 ; i < n ; i++){
            input[i] = Integer.parseInt(br.readLine());
        }
        int cnt = 0;
        int max = 0;
        for(int i = n -1 ; i >= 0 ; i--){
            if(max < input[i]){
                cnt++;
                max = input[i];
            }
        }
        System.out.println(cnt);
    }
}