프로그래머스 제일 작은 수 제거하기 JAVA 풀이 (알고리즘, 시간복잡도)

2026. 5. 10. 23:45·코테(Solved.ac + Programmers)
728x90

🔗 문제 링크

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


📌 문제 개요

정수를 저장한 배열에서 가장 작은 수를 제거한 배열을 반환하는 문제이다.

단, 배열의 길이가 1이라면 제거 후 빈 배열이 되므로 [-1]을 반환해야 한다.


📌 접근 방법

이 문제는 크게 두 단계로 해결할 수 있다.

  1. 배열의 최솟값 찾기
  2. 최솟값을 제외한 새로운 배열 생성

Java Stream API를 사용하면 코드가 매우 간결해진다.

  • min() : 배열 최솟값 탐색
  • filter() : 특정 값 제외
  • toArray() : int 배열 변환

📌 핵심 아이디어

최솟값을 먼저 구한 뒤,

int min = Arrays.stream(arr)
        .min()
        .getAsInt();

filter()를 사용해 최솟값이 아닌 값만 남긴다.

int[] answer = Arrays.stream(arr)
        .filter(num -> num != min)
        .toArray();

배열 길이가 1인 경우는 별도로 처리해야 한다.

if(arr.length == 1){
    return new int[]{-1};
}

📌 전체 코드

import java.io.IOException;
import java.util.Arrays;

class Solution {
    public int[] solution(int[] arr) {

        // 배열 길이가 1이면 [-1] 반환
        if(arr.length == 1){
           return new int[]{-1};

        }

        // 최솟값 찾기
        int min = Arrays.stream(arr)
                .min()
                .getAsInt();

        // 최솟값 제외한 새 배열 생성
        int[] answer = Arrays.stream(arr)
                .filter(num -> num != min)
                .toArray();

        return answer;
    }
}

📄 정리

이 문제는 배열 탐색과 조건 필터링의 기본을 익히기 좋은 문제였다.

특히 Stream API를 활용하면 반복문 없이도 배열 데이터를 직관적으로 처리할 수 있다는 점이 핵심이다.

728x90

'코테(Solved.ac + Programmers)' 카테고리의 다른 글

프로그래머스 가운데 글자 가져오기 JAVA 풀이 (문자열, substring)  (0) 2026.05.12
프로그래머스 약수의 개수와 덧셈 (JAVA)  (0) 2026.05.12
프로그래머스 달리기 경주 JAVA 풀이 (해시맵, 시뮬레이션)  (0) 2026.05.07
프로그래머스 나누어 떨어지는 숫자 배열 JAVA 풀이 (정렬, Stream)  (0) 2026.05.06
프로그래머스 순위 JAVA 풀이 (그래프, 플로이드워셜, 순위판별)  (0) 2026.05.05
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
  • 프로그래머스 가운데 글자 가져오기 JAVA 풀이 (문자열, substring)
  • 프로그래머스 약수의 개수와 덧셈 (JAVA)
  • 프로그래머스 달리기 경주 JAVA 풀이 (해시맵, 시뮬레이션)
  • 프로그래머스 나누어 떨어지는 숫자 배열 JAVA 풀이 (정렬, Stream)
PUSH → MERGE → DEPLOY
PUSH → MERGE → DEPLOY
데이터 흐름과 운영 자동화를 설계하는 백엔드 개발자
  • PUSH → MERGE → DEPLOY
    Coding Dongin
    PUSH → MERGE → DEPLOY
  • 전체
    오늘
    어제
    • MEUN
      • 코테(Solved.ac + Programmers)
      • BootCamp(JAVA)
      • JAVA
      • SpringBoot
      • JavaScript
      • JSP
      • DB(SQL)
      • React
      • HTML_CSS
      • jQuery
      • SCSS
      • GSAP
      • 설치 + 꿀팁
      • 정보처리기사 오답노트
      • 정보처리기사 기출문제
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GIT
  • 공지사항

  • 인기 글

  • 태그

    코딩테스트
    백준
    정처기실기
    완전탐색
    실기
    피보나치
    자바
    시뮬레이션
    dp
    level0
    springboot
    solved.ac
    정처기오답노트
    프로그래머스
    자료구조
    기출문제
    백엔드개발자
    정렬
    정처기
    브루트포스
    배열
    정보처리기사
    구현
    문자열
    java
    level1
    수학
    Level2
    정보처리기사 실기 기출문제
    알고리즘
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.4
PUSH → MERGE → DEPLOY
프로그래머스 제일 작은 수 제거하기 JAVA 풀이 (알고리즘, 시간복잡도)
상단으로

티스토리툴바