PS(Java)/인프런 강의 문제

[PS] 인프런 강의 - Array 1. 큰 수 출력하기

UL :) 2022. 10. 15. 14:13

 

문제


N(1<=N<=100)개의 정수를 입력받아, 자신의 바로 앞 수보다 큰 수만 출력하는 프로그램을 작성하세요.(첫 번째 수는 무조건 출력한다)

 

▣ 입력설명
첫 줄에 자연수 N이 주어지고, 그 다음 줄에 N개의 정수가 입력된다.

 

▣ 출력설명
자신의 바로 앞 수보다 큰 수만 한 줄로 출력한다.

 

▣ 입력예제 1
6
7 3 9 5 6 12

 

▣ 출력예제 1
7 9 6 12

풀이

생략

코드

1) 내가 푼 풀이

import java.util.Scanner;

public class Main {
 
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);

		int n = in.nextInt();
		int[] num = new int[n];
		
		num[0] = in.nextInt();
		String answer= num[0] + " ";
		for(int i=1; i<n; i++) {
			num[i] = in.nextInt();
			if(num[i-1] < num[i]) answer += num[i] + " ";
		}
		
		System.out.print(answer);
		
	}
}

2) 강사님 풀이

import java.util.*;
class Main {	
	public ArrayList<Integer> solution(int n, int[] arr){
		ArrayList<Integer> answer = new ArrayList<>();
		answer.add(arr[0]);
		for(int i=1; i<n; i++){
			if(arr[i]>arr[i-1]) answer.add(arr[i]);
		}
		return answer;
	}

	public static void main(String[] args){
		Main T = new Main();
		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();
		}
		for(int x : T.solution(n, arr)){
			System.out.print(x+" ");
		}
	}
}