[프로그래머스 / JAVA] Level 1 제일 작은 수 제거하기 (12935)

⏰ 2021-12-18 (토) 20:55:40

screener
시리즈 모아보기
프로그래머스

55 / 78

Table of Contents

  • 1. 제일 작은 수 제거하기






제일 작은 수 제거하기

랭크사용 언어
Level 1
JAVA

🔗 🔗 제일 작은 수 제거하기

문제 설명

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

제한 사항

  • arr은 길이 1 이상인 배열입니다.
  • 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.

입출력 예

arrreturn
{ 4, 3, 2, 1 }{ 4, 3, 2 }
{ 10 }{ -1 }

풀이

배열 arr의 가장 작은 수를 찾아 제거하고, 남은 배열을 반환하면 된다. 만약 제공된 배열의 갯수가 하나라면, 그 하나가 최소값이므로 그 값을 제외하면 빈 배열이 된다. 이 경우 -1을 담아 { -1 }로 반환한다.

배열을 돌며 가장 작은 값을 파악하고 그 값을 제거한 뒤 반환한다.


이 장에서는 ArrayList를 활용한다. arr를 돌며 최소값을 비교함과 동시에 ArrayList에 요소를 입력한다.

이후 최소값을 ArrayList로부터 삭제한 뒤 반환한다.

JAVA

1
2
3
4
5
6
int min = Integer.MAX_VALUE;
		
for (int item : arr)
{
	min = Math.min(min, item);
}

최소값은 위와 같이 판별한다.

코드

JAVA

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
29
30
31
32
33
34
35
36
37
38
39
40
41
import java.util.ArrayList;

/**
 * 제일 작은 수 제거하기 클래스
 *
 * @author RWB
 * @since 2021.12.13 Mon 19:20:27
 */
class Solution
{
	/**
	 * 해답 반환 메서드
	 *
	 * @param arr: [int[]] 정수 배열
	 *
	 * @return [int[]] 해답
	 */
	public int[] solution(int[] arr)
	{
		ArrayList<Integer> list = new ArrayList<>();
		
		int min = Integer.MAX_VALUE;
		
		for (int item : arr)
		{
			min = Math.min(min, item);
			
			list.add(item);
		}
		
		list.remove((Integer) min);
		
		// 리스트가 비었을 경우
		if (list.isEmpty())
		{
			list.add(-1);
		}
		
		return list.stream().mapToInt(Integer::intValue).toArray();
	}
}

🏷️ 태그
# 프로그래머스
# 알고리즘
# JAVA(자바)
# Level 1

읽어주셔서 고마워요!

도움이 되셨다면, 공감이나 댓글을 달아주시는 건 어떤가요?

블로그 운영에 큰 힘이 됩니다.

https://hits.seeyoufarm.com/api/count/incr/badge.svg?count_bg=%23484848&icon=react.svg&icon_color=dodgerblue&title=view&title_bg=%23242424&url=https%3A%2F%2Fblog.itcode.dev%2Fposts%2F2021%2F12%2F18%2Fprogrammers-a0055