본문 바로가기
알고리즘 문제풀이

[알고리즘/인프런] 2-1 큰 수 출력하기(인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의)

by jeonghaemin 2021. 5. 10.
728x90

인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 예습 풀이 코드, 강의에서 설명하는 풀이 코드를 정리하고 있습니다.

입출력 예시

입력 예시

6
7 3 9 5 6 12

출력 예시

7 9 6 12

내 풀이

  • for문을 사용하여 간단하게 풀 수 있는 문제
public class Main2_1 {

    public static String solution(int[] arr) {
        StringBuilder sb = new StringBuilder();

        sb.append(arr[0]).append(" ");

        for (int i = 1; i < arr.length; i++) {
            if (arr[i-1] < arr[i]) {
                sb.append(arr[i]).append(" ");
            }
        }

        return sb.toString();
    }

    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        int[] arr = new int[n];

        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }

        System.out.println(solution(arr));
    }
}

강의 풀이

  • 내 풀이와 거의 같은 방법으로 for문을 사용하여 간단하게 풀이
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+" ");
        }
    }
}

댓글