본문 바로가기
Coding Test/Java Coding Test

[프로그래머스 / 자바] - 제일 작은 수 제거하기

by nam_ji 2024. 1. 25.

제일 작은 수 제거하기

문제

  • 정수 배열 arr이 매개변수로 주어집니다.
  • arr의 원소 중에서 가장 작은 수를 제거한 배열을 출력하는 문제입니다.
  • 출력하려는 배열이 빈 배열이면 -1이 담긴 배열을 출력합니다.


테스트 (이클립스)

  • arr의 배열에서 가장 작은 수를 담을 수 있는 min 변수를 선언합니다.
  • arr에서 가장 작은 수를 찾는 방법은 Arrays의 stream의 min메소드를 사용하여 getAsInt로 값을 min에 담습니다.
  • 결과를 담을 answer는 List로 초기화를 하고
  • for문을 이용하여 arr의 크기만큼 순회하여 arr 원소 값을 비교할 수 있게 해줍니다.
  • if문을 이용하여 arr의 가장 작은 수가 담긴 min 값보다 arr의 원소 중에서 큰 값이라면 answer에 담도록 하고,
  • else if문을 이용하여 arr의 크기가 1보다 작거나 같으면 answer에 -1을 담도록 하게 했습니다.
package com.namji.codingtest.level0;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class RemoveSmallestNumber {
	public static void main(String[] args) {
		/*
		 * 정수 배열 arr이 매개변수로 주어집니다.
		 * arr의 원소 중에서 가장 작은 수를 제거한 배열을 출력하는 문제입니다.
		 * 배열의 크기가 1이하면 -1을 출력합니다.
		 * [4,3,2,1] > [4,3,2] / [10] > [-1]
		 */
		int[] arr = {10};
		int min = Arrays.stream(arr).min().getAsInt();
		List<Integer> answer = new ArrayList<Integer>();
		for (int i = 0; i < arr.length; i++) {
			if (arr[i] > min) {
				answer.add(arr[i]);
			} else if (arr.length <= 1) {
				answer.add(-1);
			}
		}
		System.out.println(answer);
	}
}


프로그래머스 코드

import java.util.*;

class Solution {
    public List solution(int[] arr) {
        int min = Arrays.stream(arr).min().getAsInt();
        List<Integer> answer = new ArrayList<Integer>();
        for (int i = 0; i < arr.length; i++) {
            if (min < arr[i]) {
                answer.add(arr[i]);
            } else if (arr.length <= 1) {
                answer.add(-1);
            }
        }
        return answer;
    }
}