본문 바로가기
Computer Science/Algorithm

[Inflearn] 큰 수 출력하기

by 코딩맛 2022. 11. 13.

인프런의 자바(Java)알고리즘 문제풀이 입문:코딩테스트 대비 강좌의 강의를 보고 문제 해설을 작성해보았습니다.

 

섹션2. Array(1,2차원 배열)의 1. 큰 수 출력하기 강의편 입니다.

 

설명

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

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

 

입력

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

 

출력

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

 

예시 입력 1 

6
7 3 9 5 6 12

예시 출력 1

7 9 6 12
import java.util.ArrayList;
import java.util.Scanner;

public class 큰_수_출력하기 {
	
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);		
		int num = sc.nextInt();
		int[] numArr = new int[num];
		for(int i=0; i< num; i++) {
			numArr[i] = sc.nextInt();
		}
		
		solution(num, numArr);
	}
	
	public static void solution(int n, int[] na) {
		ArrayList<Integer> ans = new ArrayList<>();
		ans.add(na[0]);
		for(int i=1; i<n; i++) {
			if(na[i]>na[i-1]) {
				ans.add(na[i]);
			}
		}
		for(int x : ans) {
			System.out.print(x+" ");
		}
	}
}

>>해설

숫자 하나를 입력 받고 숫자 크기만큼의 숫자형 배열을 생성하고 숫자를 입력받아 배열에 저장한다.

 

숫자 타입의 리스트를 선언하고 na배열의 0번째에 있는 값을 ans에 저장한다.

그리고 i를 1부터 시작하여 n까지 반복하면서 현재자리와 앞자리 숫자를 비교해야 하기 때문에 i와 i-1을 비교한다.

현재자리 숫자가 앞자리 숫자보다 크면 현재자리 숫자를 ans 리스트에 추가한다.

 

forEach문으로 ans에 담긴 값을 x로 하나씩 꺼내서 출력하여 프로그래밍을 종료한다.

'Computer Science > Algorithm' 카테고리의 다른 글

[Inflearn] 가위 바위 보  (0) 2022.11.13
[Inflearn] 보이는 학생  (0) 2022.11.13
[Inflearn] 암호  (0) 2022.11.13
[Inflearn] 문자열 압축  (0) 2022.11.13
[Inflearn] 가장 짧은 문자거리  (0) 2022.11.12