김찬진의 개발 블로그
23/02/02 [Inf_0202 보이는 학생] 본문
설명
선생님이 N명의 학생을 일렬로 세웠습니다. 일렬로 서 있는 학생의 키가 앞에서부터 순서대로 주어질 때, 맨 앞에 서 있는
선생님이 볼 수 있는 학생의 수를 구하는 프로그램을 작성하세요. (앞에 서 있는 사람들보다 크면 보이고, 작거나 같으면 보이지 않습니다.)
입력
첫 줄에 정수 N(5<=N<=100,000)이 입력된다. 그 다음줄에 N명의 학생의 키가 앞에서부터 순서대로 주어진다.
출력
선생님이 볼 수 있는 최대학생수를 출력한다.
예시 입력 1
8
130 135 148 140 145 150 150 153
예시 출력 1
5
코드
기억할 것
덤벙대지 말 것. 문제 잘 읽자
금방 풀긴 했지만 첫사람을 빼고 생각하는 실수, 키가 같은 사람을 카운트하는 실수를 해서 기분이 나쁨.
import java.util.Scanner;
public class Main {
public int solution(int n, int[] ia){
int std = ia[0]; // 첫사람부터 시작을 기준
int cnt = 1; // 첫사람은 무조건 보이니깐 cnt=1부터 시작
// 130 135 148 140 145 150 150 153
for(int i=1; i<n; i++){
if(std < ia[i]){ // 나보다 크면
cnt++; // 카운트
std = ia[i]; // 그걸 기준으로 정하기
}
}
return cnt;
}
public static void main(String[] args) {
Main m = new Main();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] ia = new int[n];
for(int i=0; i<n; i++){
ia[i] = sc.nextInt();
}
System.out.println(m.solution(n, ia));
}
}
'1일1알고 > Java Algorithm' 카테고리의 다른 글
23/02/02 [Inf_0204 피보나치 수열] (0) | 2023.02.03 |
---|---|
23/02/02 [⭐Inf_0203 가위바위보] (0) | 2023.02.02 |
23/02/01 [Inf_0201 큰 수 출력하기] (0) | 2023.02.02 |
23/02/01 [Inf_0112 암호] (1) | 2023.02.01 |
23/02/01 [⭐Inf_0111 문자열 압축] (0) | 2023.02.01 |
Comments