1. 문제 설명
- 설명 : 선생님이 N명의 학생을 일렬로 세웠습니다. 일렬로 서 있는 학생의 키가 앞에서부터 순서대로 주어질 때, 맨 앞에 서 있는 선생님이 볼 수 있는 학생의 수를 구하는 프로그램을 작성하세요. (앞에 서 있는 사람들보다 크면 보이고, 작거나 같으면 보이지 않습니다.)
- 입력 : 첫 줄에 정수 N(5<=N<=100,000)이 입력된다. 그다음 줄에 N명의 학생의 키가 앞에서부터 순서대로 주어진다.
- 출력 : 선생님이 볼 수 있는 최대 학생수를 출력한다.
2. 문제 코드 및 풀이 설명
import java.util.Scanner;
public class VisibleStudent {
public static void main(String[] args) {
VisibleStudent T = new VisibleStudent();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = kb.nextInt();
}
System.out.println(T.solution(n, arr));
}
// 해결방법
// 배열 첫번째부터 돌면서 새로 만나는 값이 커질때마다 변수에 저장
// 변수에는 선생님이 볼 수 없는 최대 키가 저장됨
// 그래서 그 값보다 큰 수가 나올때만 세어주고 큰 값을 저장
public int solution(int n, int[] arr) {
int answer = 0;
int max = 0;
for (int i = 0; i < n; i++) {
if (arr[i] > max) {
answer++;
max = arr[i];
}
}
return answer;
}
}
3. 출력 예시
입력
8
130 150 135 155 159 152 170 168
출력
5
위의 내용은 인프런에서 수강할 수 있는 김태원님의 자바 알고리즘 문제풀이 강의를 바탕으로 공부한 내용을 정리한 내용입니다!
'Algorithm' 카테고리의 다른 글
[Algorithm/Java] 알고리즘 자바 피보나치 수열 (코딩테스트, Array, 배열, 피보나치 수열 만들기) (0) | 2022.03.24 |
---|---|
[Algorithm/Java] 알고리즘 자바 가위바위보 (코딩테스트, Array, 배열, 경우의 수 정리) (0) | 2022.03.23 |
[Algorithm/Java] 알고리즘 자바 큰 수 출력하기 (코딩테스트, Array, 배열, 배열 값 비교) (0) | 2022.03.21 |
[Algorithm/Java] 알고리즘 자바 암호 해석 (코딩테스트, String, 문자열, 암호 복호화) (0) | 2022.03.20 |
[Algorithm/Java] 알고리즘 자바 문자열 압축 (코딩테스트, String, 문자열, 문자 중복, 문자 개수 세기) (0) | 2022.03.19 |