algorithm

보이는 학생

juuuuuuun 2024. 4. 29. 05:21

설명

선생님이 N명의 학생을 일렬로 세웠습니다. 일렬로 서 있는 학생의 키가 앞에서부터 순서대로 주어질 때, 맨 앞에 서 있는

선생님이 볼 수 있는 학생의 수를 구하는 프로그램을 작성하세요. (앞에 서 있는 사람들보다 크면 보이고, 작거나 같으면 보이지 않습니다.)

 

입력

첫 줄에 정수 N(5<=N<=100,000)이 입력된다. 그 다음줄에 N명의 학생의 키가 앞에서부터 순서대로 주어진다.

 

출력

선생님이 볼 수 있는 최대학생수를 출력한다.

 

예시 입력 1 

8
130 135 148 140 145 150 150 153

 

예시 출력 1

5

 

소스 코드 1

import java.util.Scanner;

public class Main {
    public static int solution(int[] height) {
        int ans = 1; //첫 번째 학생은 당연히 보이므로 1부터 시작함
        int max = height[0]; //제일 큰 키를 첫 번째 인덱스로 설정
        for (int i = 1; i < height.length; i++) {
            if (max < height[i]) { //max 보다 큰 키가 있다면 저장후 카운트 1증가
                max = height[i];
                ans++;
            }
        }
        return ans;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] height = new int[N];
        for (int i = 0; i < height.length; i++) {
            height[i] = sc.nextInt();
        }

        System.out.println(solution(height));

    }
}