인프런의 자바(Java)알고리즘 문제풀이 입문:코딩테스트 대비 강좌의 강의를 보고 문제 해설을 작성해보았습니다.
섹션2. Array(1,2차원 배열)의 2. 보이는 학생 강의편 입니다.
설명
선생님이 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 보이는_학생 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int[] numArr = new int[num];
for(int i=0; i< num; i++) {
numArr[i] = sc.nextInt();
}
solution(num, numArr);
}
public static void solution(int n, int[] na) {
int max = na[0];
int ans = 1;
for(int i=1; i<n; i++) {
if(na[i]>max) {
ans++;
max = na[i];
}
}
System.out.println(ans);
}
}
>>해설
숫자를 하나 입력받고 숫자 크기의 배열을 선언한다. 그리고 배열 크기만큼 숫자를 입력 받아서 numArr에 저장한다.
solution 메서드를 호출하고
max값을 배열 첫번째 숫자로 초기화한다. 그리고 첫 학생은 무조건 보이기 때문에 ans는 1로 초기화한다.
반복문을 1부터 돌면서 na배열의 현재 값이 max에 담긴 값보다 큰지 확인한다.
크다면 ans값을 증가시키고 max에 현재 값을 담는다.
마지막으로 ans값을 출력한다.
'Computer Science > Algorithm' 카테고리의 다른 글
[Inflearn] 피보나치 수열 (0) | 2022.11.20 |
---|---|
[Inflearn] 가위 바위 보 (0) | 2022.11.13 |
[Inflearn] 큰 수 출력하기 (0) | 2022.11.13 |
[Inflearn] 암호 (0) | 2022.11.13 |
[Inflearn] 문자열 압축 (0) | 2022.11.13 |