[C#] 제일 작은 수 제거하기
2020. 7. 25. 20:08ㆍ[C#] 코딩테스트 문제풀이
반응형
프로그래머스 문제
문제 설명
정수를 저장한 배열, 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);
if(arr_list.Count ==0)
{
arr_list.Add(-1);
}
return arr_list.ToArray();
}
}
느낀점 : 우선 배열을 List로 바꿔줘야 삭제에 용이하기 때문에 배열을 List로 변환.
List를 처음 사용해 보아서 어려움이 따랐다.
List 를 사용하기 위해 using System.Collections.Generic;
Linq -> Min() 배열의 최소값을 찾아주기위해선언.
이후에는 간단하게 해결되었다. List에서 가장 작은 값을 제거해주는데, 만약 크기가 1인 리스트에서 최소값이 제거되면
List.Count ==0 일 것이고, 이때는 List.Add() 를 통해 -1을 넣어주어 조건 만족.
마지막 return 을 리스트 -> 배열로 바꿔주어 리턴.
핵심: 배열 안에서 특정 조건을 찾아 삽입 삭제하는 것은 용이하지 않으니
배열 -> 리스트 (조건 처리) ->배열(출력) 의 형식으로 진행.
반응형
'[C#] 코딩테스트 문제풀이' 카테고리의 다른 글
[C#]정수 내림차순으로 배치하기 (0) | 2020.07.27 |
---|---|
[C#] 정수 제곱근 판별 (0) | 2020.07.27 |
[C#] 짝수와 홀수 (0) | 2020.07.25 |
[C#] 최대공약수 최대공배수 구하기 문제(유클리드 호제법) (0) | 2020.07.25 |
[C#] 콜라츠 추측 문제 해결 (0) | 2020.07.24 |