오늘보다 더 나은 내일의 나에게_

자바 알고리즘 문제 풀이 Array Q01_큰 수 출력하기 본문

ALGORITHM/inflearn_javaAlgorithm

자바 알고리즘 문제 풀이 Array Q01_큰 수 출력하기

chan_96 2022. 2. 7. 22:39
728x90
설명

N개의 정수를 입력받아, 자신의 바로 앞 수보다 큰 수만 출력하는 프로그램을 작성하세요.

(첫 번째 수는 무조건 출력한다)


입력

첫 줄에 자연수 N(1<=N<=100)이 주어지고, 그다음 줄에 N개의 정수가 입력된다.


출력

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

 


예시 입력1


예시 출력

6
7 3 9 5 6 12
7 9 6 12

 

코드

내가 입력한 코드

package Array;

import java.util.ArrayList;
import java.util.Scanner;

public class Q01 {
	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) {
		Q01 T = new Q01();
		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+" ");
		}
		
	}
}

 




해설 코드

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+" ");
		}
	}
}

 

 

풀이 및 정리 

먼저 int 정수를 입력받고 int배열을 입력받은 int정수 값으로 배열의 크기를 초기화시켜준다.
ArrayList를 선언하고 int배열 0번째 인덱스를 추가한다. 바로 앞 수보다 큰 수를 출력해야 하는데 첫 번째는 무조건 들어가야 하니까 추가해줘야 한다!

반복문 안 조건문에서 매개변수로 받아온 int배열을 i번째와 i-1번째를 비교해 i가 크면 ArrayList에 추가한다!
728x90
Comments