보이는 학생 찾기

문제

설명

선생님이 N명의 학생을 일렬로 세웠습니다. 일렬로 서 있는 학생의 키가 앞에서부터 순서대로 주어질 때, 맨 앞에 서 있는 선생님이 볼 수 있는 학생의 수를 구하는 프로그램을 작성하세요. (앞에 서 있는 사람들보다 크면 보이고, 작거나 같으면 보이지 않습니다.)

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

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

예시 입력 1

8
130 135 148 140 145 150 150 153

예시 출력 1

5

해결방법

  • 문제의 의미는 배열 원소보다 큰 값이 앞의 index 에 있으면 안되는 경우를 찾는 것이다.
  • 기준 최대값을 배열 첫번째 값으로 초기화 하고, 자신이 기준보다 큰 지 판단하여 찾아나간다.

코드

import java.util.*;

class Main {
    public int solution(int n, int[] arr) {
        int answer = 1, max = arr[0];
        for (int i = 1; i < n; i++) {
            if (arr[i] > max) {
                max = arr[i];
                answer++;
            }
        }
        return answer;
    }

    public static void main(String[] args) {
        Main.Main T = new Main.Main();
        Scanner kb = new Scanner(System.in);
        int n = kb.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = kb.nextInt();
        }
        System.out.print(T.solution(n, arr));
    }
}


© 2024. Chiptune93 All rights reserved.