Algorithm_Test
인프런 2-2. 보이는 학생 (자바)
산타는 뽀미
2023. 9. 6. 11:54
[문제]
선생님이 N명의 학생을 일렬로 세웠습니다. 일렬로 서 있는 학생의 키가 앞에서부터 순서대로 주어질 때, 맨 앞에 서 있는 선생님이 볼 수 있는 학생의 수를 구하는 프로그램을 작성하세요. (앞에 서 있는 사람들보다 크면 보이고, 작거나 같으면 보이지 않습니다.)
[입력]
첫 줄에 정수 N(5<=N<=100,000)이 입력된다. 그 다음줄에 N명의 학생의 키가 앞에서부터 순서대로 주어진다.
[출력]
선생님이 볼 수 있는 최대학생수를 출력한다.
[예시 입력 1 ]
8
130 135 148 140 145 150 150 153
[예시 출력 1]
5
[문제 풀이 과정]
이것도 이전에 푼 문제랑 똑같은거 아닌가? 결국 제일 첫번째 있는 애는 보이고
그 다음 애부터는 앞에 애보다 커야지만 보이는 거니까..
어제 푼 문제랑 아예 똑같넹!!!
아하!! 다른점 하나 있다!
바로 앞에 애보다만 커야되는게 아니라
큰 애가 나올 때마다 맥시멈이 자꾸 커져야 되는구나!!
1. 첫줄의 N을 읽고 int[N] 배열을 만들어서 키 다 넣는다.
2. 제일 첫번째 애는 그냥 보이고 그 다음부터는 맥시멈보다 크면 보이게 한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] arr = new int[N];
int answer = 0;
int maxHeight = 0;
for(int i = 0 ; i < N ; i++) {
arr[i] = sc.nextInt();
}
for(int i = 0 ; i < N ; i++) {
if(i == 0) {
answer++;
maxHeight = arr[0];
} else {
if(maxHeight < arr[i]) {
answer++;
maxHeight = arr[i];
}
}
}
System.out.println(answer);
}
}
[후기]
재미없어 너무 쉬워! 근데 어려운거 풀기 시러