본문 바로가기
개발공간

C# 제일 작은 수 제거하기 [프로그래머스 Level 1]

by -0o0- 2021. 8. 12.

C# 제일 작은 수 제거하기 [프로그래머스 Level 1]

코드 바로보기


문제 설명

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


제한 조건

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

입출력 예

 

arr return
[4,3,2,1] [4,3,2]
[10] [-1]

코드

using System;
using System.Collections.Generic;
public class Solution {
    public int[] solution(int[] arr) {
        //배열의 길이가 하나라면 해당 배열을 -1로 초기화 후 리턴
        if(arr.Length==1) {arr[0] = -1; return arr;}
        
        //가장 작은 수를 제거하기 위한 배열 첫 번째 수를 temp 변수에 대입
        int temp = arr[0];
        
        //0부터 배열 크기 까지 반복하면서 가장 작은 수를 판별
        for(int i=0; i<arr.Length; i++)
        {
            if(temp>arr[i]) temp=arr[i];
        }
        //리스트 선언        
        List<int> list = new List<int>();
        //리스트에 배열 넣기
        list.AddRange(arr);
        //리스트 중 가장 작은수 temp 제거
        list.Remove(temp);
        
        //answer 선언 후 리스트 배열화 해서 리턴
        int[] answer = new int[] {};
        answer = list.ToArray();
        return answer;
    }
}

댓글