문제
설명
선생님이 N명의 학생을 일렬로 세웠습니다. 일렬로 서 있는 학생의 키가 앞에서부터 순서대로 주어질 때, 맨 앞에 서 있는
선생님이 볼 수 있는 학생의 수를 구하는 프로그램을 작성하세요. (앞에 서 있는 사람들보다 크면 보이고, 작거나 같으면 보이지 않습니다.)
입력
첫 줄에 정수 N(5<=N<=100,000)이 입력된다. 그 다음줄에 N명의 학생의 키가 앞에서부터 순서대로 주어진다.
출력
선생님이 볼 수 있는 최대학생수를 출력한다.

내 풀이
import java.util.Scanner;
public class Main2_2 {
    public int Solution(int n, int[] arr) {
        int answer = 0;
        for (int i = 0; i < n-1; i++) {
            if(arr[i] < arr[i+1]) answer++;
        }
        return answer;
    }
    public static void main(String[] args) {
        Main2_2 T = new Main2_2();
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }
        System.out.println(T.Solution(n, arr));
    }
}
간단하게 잘 풀었다고 생각했는데 채점에서 오답이라고 뜬다ㅠㅠ
선생님 풀이
import java.util.Scanner;
public class Main2_2 {
    public int Solution(int n, int[] arr) {
        int answer = 1, max = arr[0];
        for (int i = 1; i < n; i++) {
            if(arr[i] > max) {
                answer++;
                max = arr[i];
            }
        }
        return answer;
    }
    public static void main(String[] args) {
        Main2_2 T = new Main2_2();
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }
        System.out.println(T.Solution(n, arr));
    }
}
결과

'Algorithm > Inflearn' 카테고리의 다른 글
| [Inflearn] 영리한 프로그래밍을 위한 알고리즘 - 순환 (Recursion) 의 개념과 기본 예제 1 (0) | 2022.11.08 | 
|---|---|
| [Inflearn] 자바 알고리즘 문제풀이 #02-03 3. 가위 바위 보 (0) | 2022.11.08 | 
| [Inflearn] 자바 알고리즘 문제풀이 #02-01 1. 큰 수 출력하기 (0) | 2022.11.07 | 
| [Inflearn] 자바 알고리즘 문제풀이 #01-12 12. 암호 (0) | 2022.11.06 | 
| [Inflearn] 자바 알고리즘 문제풀이 #01-11 11. 문자열 압축 (0) | 2022.11.04 | 
 
									
								 
									
								 
									
								