본문 바로가기

알고리즘/인프런

섹션 2. Array(1, 2차원 배열)_2. 보이는 학생

문제

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

입력

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

출력

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

입출력 예제


풀이 방식을 정리해보자.

 

1. 학생의 수를 입력할 변수 N과 학생의 키를 저장할 배열 height를 선언한다.

 

2. for 문을 통해 각 학생들의 키를 입력받고, 메소드를 호출하는 코드를 작성한다.

 

3. 메소드 구현을 시작한다.

 

4. 결과값을 저장할 변수 result 를 선언하고, 1로 초기화한다.

  • 맨 처음에 있는 학생은 무조건 보이기 때문이다.

5. max 변수를 선언하고 height 배열의 맨 첫번째 값을 넣는다.

  • max 변수는 가장 큰 키를 저장할 변수로, 큰 값이 나올 때마다 교체된다.

6. 어떤 학생의 키가 max보다 크면, max에 그 값을 넣어주고, 결과에 1씩 더한다.

 

수행 결과를 확인한다.


해당 글은 인프런 > 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비(김태원)강의를 참고하여 작성하였습니다.