[TIL_47] C# 제일작은수 제거하기

H·2024년 2월 29일
0

문제 설명

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

제한 조건

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

코드 풀이


using System.Collections.Generic;
using System.Linq;

public class Solution
{
    public int[] solution(int[] arr)
    {
        // 주어진 배열을 리스트로 변환
        List<int> arr_list = new List<int>(arr);

        // 배열에서 최솟값을 찾기
        int min = arr.Min();

        // 리스트에서 최솟값을 모두 제거
        arr_list.RemoveAll(num => num == min);

        // 리스트가 비어있다면, 최솟값만으로 구성된 배열을 반환하기 위해 -1을 추가
        if (arr_list.Count == 0)
        {
            arr_list.Add(-1);
        }
        // 최종적으로 리스트를 배열로 변환하여 반환
        return arr_list.ToArray();
    }
}

이 코드는 입력 배열에서 최솟값을 찾고, 그 값을 제외한 나머지 값을 포함하는 새로운 배열을 생성하는 간단한 방법으로 작동합니다. 만약 배열이 비어있다면, -1이 하나만 들어있는 배열을 반환합니다.

  1. 입력 배열을 리스트로 변환
  2. 입력 배열에서 최솟값을 찾기
  3. 리스트에서 최솟값과 동일한 값을 가진 모든 요소를 제거
  4. 리스트가 비어있다면, -1을 추가
  5. 최종적으로 리스트를 배열로 변환하여 반환
profile
IT 서비스 구현 및 게임에 관심이 많습니다.

0개의 댓글