보이는 학생
선새임이 N명의 학생을 일렬로 세웠습니다. 일렬로 서 있는 학생의 키가 앞에서부터 순서대로 주어질 때, 맨 앞에 서 있는 선생님이 볼 수 있는 학생의 수를 구하는 프로그램을 작성
■ 문제 풀이
1) 입력 설명
- 첫 줄에 정수 N(5<=N<=100,000)이 입력
- 그 다음줄에 N명의 학생의 키가 앞에서부터 순서대로 주어진다.
- 어떤 학생이 자기 앞에 서 있는 학생들보다 크면, 그 학생은 보이고 작거나 같으면 보이지 않는다.
2) 출력 설명
- 선생님이 볼 수 있는 최대 학생 수 출력
3) 테스트
- input :
8
130 135 148 140 145 150 150 153
- output :
5
4) 문제 설명
- 학생의 키를 max 변수에 설정한 후, 비교를 통해 max 값이 변경될 때마다 새롭게 설정을 하면서 선생님이 볼 수 있는 학생의 수를 한명씩 더한다.
import java.util.Scanner;
public class Main {
private int solution(int[] input) {
int maxCount = 1; //맨 첫줄에 선 학생은 선생님이 볼 수 있으므로, 초기값은 1로 설정
int compare = input[0];
for (int i = 1; i < input.length; i++) {
if (compare < input[i]) {
maxCount++;
compare = input[i];
}
}
return maxCount;
}
public static void main(String[] args) {
Main main = new Main();
Scanner scanner = new Scanner(System.in);
int inputCnt = scanner.nextInt();
int[] input = new int[inputCnt];
for (int i = 0; i < inputCnt; i++) {
input[i] = scanner.nextInt();
}
System.out.println(main.solution(input));
}
}
'CodingTest Practice' 카테고리의 다른 글
[인프런] 소수 구하기(에라토스테네스의 체) (0) | 2022.04.15 |
---|---|
[인프런] 가위 바위 보 (0) | 2022.04.14 |
[인프런] 큰 수 출력하기 (0) | 2022.04.11 |
[인프런] 가장 짧은 문자 거리 (0) | 2022.04.05 |
[인프런] 숫자만 추출 (0) | 2022.04.03 |