문제
- 선생님이 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) 알고리즘 문제풀이 : 코딩테스트 대비(김태원)강의를 참고하여 작성하였습니다.
'알고리즘 > 인프런' 카테고리의 다른 글
섹션 2. Array(1, 2차원 배열)_4. 피보나치 수열 (0) | 2022.09.05 |
---|---|
섹션 2. Array(1, 2차원 배열)_3. 가위 바위 보 (0) | 2022.09.04 |
섹션 2. Array(1, 2차원 배열)_1. 큰 수 출력하기 (0) | 2022.09.01 |
섹션 1. String(문자열)_12. 암호 (2) | 2022.08.22 |
섹션 1. String(문자열)_11. 문자열 압축 (0) | 2022.08.22 |