Notice
Recent Posts
Recent Comments
Link
04-27 08:24
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

<<개발일지>>

[배열] 2. 보이는 학생 본문

코딩테스트

[배열] 2. 보이는 학생

개발하는지호 2023. 12. 10. 19:17
2. 보이는 학생
 

설명

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

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

입력

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

출력

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

예시 입력 1 

8
130 135 148 140 145 150 150 153

예시 출력 1

5

 

 

<<풀이>>

-본인-

우선 나의 풀이다. 이 문제는 정말 쉽게 푼거 같다. 하지만 강의 듣기 전이라 ㅋㅋ 긴장의 끈을 놓칠 수 없다.

import java.util.Scanner;

class Main {
    public int solution(int[] arr) {
        int count = 1;
        int max = arr[0];
        for (int i = 0; i < arr.length - 1; i++) {
            if (arr[i + 1] > max ) {
                count++;
                max = arr[i + 1];
            }

        }
        return count;
    }



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

        System.out.println(T.solution(arr));
    }
}

 

우선 max 값을 초기화 하고 이전 키보다 크면 max가 되게 하여 그 다음 값과 비교하여 count 가 증가할 수 있게끔 구성했다.

 

 

-강사님-

 

오늘은 안 적겠다 ㅋㅋ 강사님 풀이랑 나의 풀이랑 같다 ㅎㅎ 물론 쉬운 문제였지만 매번 달랐던 사고의 흐림이 오늘은 똑같다는게 신기하다 ㅋㅋ 

 

 

<<추가 공부>>

int min = Integer.MAX_VALUE;

int max = Integer.MIN_VALUE;

이번 문제에는 크게 필요는 없지만 최대 최소구할 때 이를 활용해서 사용하기도 한다. 

'코딩테스트' 카테고리의 다른 글

[배열] 4. 피보나치 수열  (1) 2023.12.12
[배열] 3. 가위 바위 보  (0) 2023.12.12
[배열] 1. 큰 수 출력하기  (1) 2023.12.08
[문자열] 12. 암호  (1) 2023.12.07
[문자열] 11. 문자열 압축  (1) 2023.12.07