띠오니 개발자 성장일지
article thumbnail
반응형

 

인프런의 "자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비" 강좌를 수강했습니다.

C, C++, Python, Js 등 다른 언어의 강의도 있으니 본인에게 맞는 강의를 선택하시면 됩니다. 😁

https://inf.run/pCPH

 

자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 - 인프런 | 강의

자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성

www.inflearn.com

 


Q2-01. 큰 수 찾기

정수 N개를 입력받아, 자신의 바로 앞의 수보다 큰 수를 출력하기
첫 줄엔 정수의 개수가, 두번 째 줄에는 개수에 해당하는 정수가 입력된다.

 

예시 입력 예시 출력
6
7 3 9 5 6 12
7 9 6 12

 

✏️ 내가 쓴 답

solution() 메소드의 반환타입을 ArrayList<Integer> 로 지정한다.

바로 앞의 수가 담길 정수형 변수 tmp 로 선언하고, 정수형 범위 중 가장 작은 수인 Integer.MIN_VALUE 로 초기화 한다.

그래서 반복문을 돌며 해당 숫자와 tmp 의 크기를 비교하고, 비교가 끝나면 tmp에 그 수를 대입한다.

결과는 정답!✅

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

public class Main {

    public ArrayList<Integer> solution(int[] arr){

        ArrayList<Integer> answer = new ArrayList<>();
        int tmp = Integer.MIN_VALUE;
        for(int num : arr){
            if(num > tmp) answer.add(num);
            tmp = num;
        }
        return answer;
    }

    public static void main(String[] args) {
        Main main = new Main();
        Scanner sc = new Scanner(System.in);
        
        int num = sc.nextInt();
        int[] arr = new int[num];
        for(int i=0; i<num; i++){
            arr[i] = sc.nextInt();
        }
        for(int x : main.solution(arr)){
            System.out.print(x + " ");
        }
    }
    
}

 

반응형

 

👨🏻‍🏫  풀이코드

선생님은 아래와 같이 풀이했다.

 

변수 초기화 없이 첫번 째 숫자는 배열 첫번째에 넣고,

반복문에서 배열 i번째와 i-1번째를 비교하는 방식이었다. 

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;
}

 

 

🤓 정리

  • ArrayList<E> E 는 제너릭 타입은 리스트에 들어갈 값의 타입을 지정해준다. 잘못된 값이 들어오는 것을 방지할 수 있다. 

 

 


반응형
profile

띠오니 개발자 성장일지

@띠오니

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!