1. 문제 설명
- 설명 : N개의 정수를 입력받아, 자신의 바로 앞 수보다 큰 수만 출력하는 프로그램을 작성하세요. (첫 번째 수는 무조건 출력한다)
- 입력 : 첫 줄에 자연수 N(1<=N<=100)이 주어지고, 그다음 줄에 N개의 정수가 입력된다.
- 출력 : 자신의 바로 앞 수보다 큰 수만 한 줄로 출력한다.
2. 문제 코드 및 풀이 설명
import java.util.ArrayList;
import java.util.Scanner;
public class LargeNumberOutput {
public static void main(String[] args) {
LargeNumberOutput T = new LargeNumberOutput();
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 + " ");
}
}
// 해결방법
// 숫자를 입력 받고 새로운 배열을 만들어
// 바로 앞의 수보다 크면 새로운 배열에 입력
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;
}
}
3. 출력 예시
입력
8
3 7 12 5 8 2 9 6
출력
3 7 12 8 9
=> 배열에서 내가 바로 앞의 값보다 크다면 출력
위의 내용은 인프런에서 수강할 수 있는 김태원님의 자바 알고리즘 문제풀이 강의를 바탕으로 공부한 내용을 정리한 내용입니다!