큰 수 찾기

최준호·2021년 8월 5일
0

알고리즘 강의

목록 보기
9/79

설명

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

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

코드

public class BiggerNumber {
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        int leng = in.nextInt();
        int[] arr = new int[leng];
        for(int i=0; i<leng; i++){
            int input = in.nextInt();
            arr[i] = input;
        }

        solution(arr);
    }

    public static void solution(int[] arr){
        int length = arr.length;
        int[] arr2 = new int[length+1];
        for(int i=0; i<length; i++){
            arr2[i] = arr[i];
        }
        arr2[length] = 0;
        StringBuilder sb = new StringBuilder();

        sb.append(arr2[0]+" ");
        //전체를 탐색하면서 뒤 번호가 앞번호보다 큰지 확인
        for(int i=1; i<arr2.length; i++){
            int su1 = arr2[i-1];
            int su2 = arr2[i];
            if(su1<su2) sb.append(su2+" ");
        }
        System.out.println(sb.toString().trim());
    }
}

역시 알고리즘 문제는 여러 방법으로 풀어보는게 중요하다는 걸 느꼈다. 물론 아직도 쉬운 난이도지만 저번에 학습했던 배열에 마지막을 추가해주는 방법으로 풀었더니 너무 쉬운 문제가 되었다.

이 방법을 몰랐다면 또 헤매고 있었겠지..ㅜㅜ

라고 생각하고 강의를 들었는데... 이거보다 더 쉽게 풀더라ㅜㅜㅜ

강의에서 소개한 방법은 ArrayList를 사용하는 방법인데 풀이 방식은 똑같이 마지막에 0을 추가해주는 방법이다. 뭐... 그 방법은 너무 쉬우니 직접 풀어볼 분들은 직접 풀어보는 것도 나쁘지 않을 것 같다!

배열에서 탐색할땐 마지막에 하나 더 추가해주면 무조건 쉬워짐!

profile
코딩을 깔끔하게 하고 싶어하는 초보 개발자 (편하게 글을 쓰기위해 반말체를 사용하고 있습니다! 양해 부탁드려요!) 현재 KakaoVX 근무중입니다!

0개의 댓글