Recent Posts
Link
250x250
오늘보다 더 나은 내일의 나에게_
자바 알고리즘 문제 풀이 Array Q01_큰 수 출력하기 본문
728x90
설명
N개의 정수를 입력받아, 자신의 바로 앞 수보다 큰 수만 출력하는 프로그램을 작성하세요.
(첫 번째 수는 무조건 출력한다)
입력
첫 줄에 자연수 N(1<=N<=100)이 주어지고, 그다음 줄에 N개의 정수가 입력된다.
출력
자신의 바로 앞 수보다 큰 수만 한 줄로 출력한다.
예시 입력1
예시 출력6
7 3 9 5 6 127 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
'ALGORITHM > inflearn_javaAlgorithm' 카테고리의 다른 글
자바 알고리즘 문제 풀이 Array Q03_가위 바위 보 (0) | 2022.02.09 |
---|---|
자바 알고리즘 문제 풀이 Array Q02_보이는 학생 (0) | 2022.02.09 |
자바 알고리즘 문제 풀이 String Q12_암호 (0) | 2022.02.06 |
자바 알고리즘 문제 풀이 String Q11_문자열 압축 (0) | 2022.02.04 |
자바 알고리즘 문제 풀이 String Q10_가장 짧은 문자거리 (0) | 2022.02.03 |
Comments