본문 바로가기
문제풀이/프로그래머스

제일 작은 수 제거하기 / 프로그래머스 연습문제 / programmers / level1 / Java

by RUCKUS 2021. 7. 31.

https://programmers.co.kr/learn/courses/30/lessons/12935

 

코딩테스트 연습 - 제일 작은 수 제거하기

정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1

programmers.co.kr


이번 문제는 최소값을 찾는 방법에 대한? 문제라고 보면 될 것 같다.

최소값을 찾을때는 몇가지 방법이 있는데

 

1. 정렬을 직접 구현

2. Sort함수를 사용

3. Stream을 이용

 

1번과 2번은 몇 번 해봐서 이번에는 스트림을 사용해 보았다.

 

[작성코드]

import java.util.Arrays;

public class DelMinNum {

	public static void main(String[] args) {
		DelMinNum s = new DelMinNum();
		s.solution(new int [] {1, 2, 3, 4});

	}

	public int[] solution(int[] arr) {
        int[] answer = new int [arr.length - 1];
        
        if (arr.length <= 1) {
            answer = new int [1];
            answer[0] = -1;
        } else {
            int min = Arrays.stream(arr).min().getAsInt();
            int count = 0;
            for (int i = 0; i < arr.length; i++) {
                if (min == arr[i]) {
                    continue;
                } else {
                    answer[count] = arr[i];
                    count++;
                }
            }
            
            
        }
        
        return answer;
    }
	
}

스트림으로 가장 작은 값을 찾아 준 후에

배열의 길이만큼 반복하면서 최소값만 건너뛴 상태로 answer에 담아서 리턴한다. 끝!

 


[깃허브링크]

https://github.com/RUCKUSJERRY/practiceOfAlgorithm/blob/main/Prs_Pratice/src/com/level01/DelMinNum.java

 

GitHub - RUCKUSJERRY/practiceOfAlgorithm

Contribute to RUCKUSJERRY/practiceOfAlgorithm development by creating an account on GitHub.

github.com