Notice
Recent Posts
Recent Comments
Link
250x250
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

거인의 코딩일지

[Lv.1_Java]제일 작은 수 제거하기 본문

알고리즘테스트/Programmers

[Lv.1_Java]제일 작은 수 제거하기

코딩거인 2023. 3. 29. 16:29
728x90

제일 작은수를 찾아 제거하고 answer배열에 값을 넣어주고 arr 배열에 값이 하나인 경우에는 배열값에 -1을 담아주어야 하는게 문제였다!

class Solution {
    public int[] solution(int[] arr) {
        if(arr.length == 1){
            int[] answer = {-1};
            return answer;
        }
        int[] answer = new int [arr.length-1]; 
        int min = 2147000000;
        int num = 0;
        for (int i = 0; i < arr.length; i++) {
			if (arr[i] < min) {
				min = arr[i];
			}
		}
        for(int i = 0 ; i < arr.length; i++){
            if(arr[i] != min){
                answer[num] = arr[i];
                num++;
            }
        }
        return answer;
    }
}
class Solution {
    public int[] solution(int[] arr) {
        if(arr.length == 1){
            int[] answer = {-1};
            return answer;
        }
        int[] answer = new int [arr.length-1]; 
        int min = 2147000000;
        for (int i = 0; i < arr.length; i++) {
			if (arr[i] < min) {
				min = arr[i];
			}
            int num = 0;
            for(int j = 0 ; j < arr.length; j++){
                if(arr[j] != min){
                    answer[num] = arr[j];
                    num++;
                }
            }
		}
        return answer;
    }
}

2가지로 풀었는데 첫번째 풀이는 for문을 2개 생성하는것이고 두번째 풀이는 이중 for문을 사용하는 것이였다.

우선 공통적으로 -1을 값으로 가지고 있는 것을 생성해주기 위해서 처음에 if 문을 사용하여 배열 값이 하나인경우
-1을 넣어주고 return 하여 식을 마치고 

최솟값을 구해주기 위하여 int의 최대 수에서 배열 값이랑 비교했을 경우 배열중에 제일 작은 수를 찾아서 min 에 넣어주었다.

그 후 answer과 arr의 배열의 길이가 다르기 때문에 대입해주기 위해서 num이라는 변수를 생성하고 따로 num++;을 사용했고 첫번 째 풀이 처럼 for 문을 두개 생성하여 해결하는 것이 풀이 속도가 더욱 빠른것을 알수 있었다.!!

첫번째 풀이 해결 속도!!
두번째 풀이 해결 속도!!

728x90