[알고리즘 문제] 제일 작은 수 제거하기

Z_제트·2023년 12월 15일
0

코드 초기화 ↓

public class Solution {
    public int[] solution(int[] arr) {
        int[] answer = new int[] {};
        return answer;
    }
}

240118 updated.

풀이 ↓

using System.Linq;

public class Solution 
{
    public int[] solution(int[] arr) 
    {
        int[] answer = new int[] {};
        
        // arr 의 요소가 1개일 때
        if (arr.Length == 1)
        {
            arr[0] = -1;
            return arr;
        }
        
        // arr 의 요소가 2개 이상일 때 -- Array.Min() - 최솟값 찾기
        int min = arr.Min();
        answer = arr.Where(x => x != min).ToArray();

        return answer;
    }
}

// Array.Min() - 배열에서 최솟값 구하기
// Linq - Where 를 배워서 적용해보았다 !




과거의 시행착오s

시행착오 - 1차 ↓

대차게 실패-!
List 추가해서 풀었다가 시간이 오래걸려서 그런건가..?

using System.Collections.Generic;

public class Solution
{
    public int[] solution(int[] arr)
    {
        int[] answer = new int[] {};
        List<int> arrToList = new List<int>();
        int[] forOneIndex = {-1};
        
        //#1 arr.Length 가 1 이면 return [-1]
        if (arr.Length == 1)
            return forOneIndex;
        
        //#2 Array -> List
        foreach (int num in arr)
        {
            arrToList.Add(num);
        }
        
        arrToList.Sort(); // 오름차순
        arrToList.Reverse(); // 내림차순으로 정렬
        
        // 숫자들이 내림차순으로 정리되어 있으니 맨 뒤에 있는 수가 제일 작겠죠 !
        arrToList.RemoveAt(arrToList.Count - 1); 
        
        answer = arrToList.ToArray(); // answer 는 Array, 따라서 List 를 Array 로 !
        
        return answer;
    }
}


코드 실행은 성공해서 좋았는데... 그땐 좋았지..


어림도 없지 ~!

List 사용한 게 문제였을까 ?
다시 Array 로만 풀어보자 !

시행착오 - 2차 ↓

역시 어림도 없지 또실패 !

using System;

public class Solution
{
    public int[] solution(int[] arr)
    {
        int[] arrForOneIndex = {-1};
        
        // #1 arr.Length 가 1 이면 return [-1]
        if (arr.Length == 1)
            return arrForOneIndex;
        
        // #2 arr.Length 가 1보다 크면      
        Array.Sort(arr); // 먼저 오름차순
        Array.Reverse(arr); // 내림차순으로 정렬
        
        // 숫자들이 내림차순으로 정리되어 있으니 맨 뒤가 제일 작겠죠 !
        Array.Resize(ref arr, arr.Length -1);
        
        return arr;
    }
}


잘 되는 듯 했으나 ~

hmm.. 🤔


머리가 정말 안 돌아가서

나중에..
추가적으로 공부를 더 해야할 것 같다.

처음 코드카타 제출을 못한 날이 되겠군..!
그래도 문제 해결하려고 노력은 정말 열심히 했으니 후회는 없다.
오늘은 일단 후퇴.

profile
trying to make the world a better place with a cool head and warm heart

0개의 댓글