문제 풀기/C#

49. 두 개 뽑아서 더하기

kagan-draca 2025. 2. 4. 14:52

 

기본 틀 :

 

using System;

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

 

문제를 보면 결과로 나오는 배열이 가변적이라는 사실을 알 수 있다.

 

그래서 배열이 아닌 List를 사용하기로 결정했다.

 

(

 

List가 배열보다 조회 및 조작에 더 많은 수행시간을 요구하기

 

때문에 사용을 기피하고 있었다.

 

)

 

위의 문제를 간단하게 풀기 위해서는 매개변수로 numbers를 오름차순 정렬 한 후

 

2중 반복문으로 두 요소의 합을 구한 후 List 안에 요소가 존재하는지

 

여부를 확인 후 없다면 추가하면 됐다.

 

마지막으로 return 할 때는 return 값이 [] 배열이기

 

때문에 list를 ToArray()로 배열로 만들어 반환하면 됐다.

 

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

public class Solution 
{
    public int[] solution(int[] numbers) 
    {
        List<int> list = new List<int>();
        numbers = numbers.OrderBy(element => element).ToArray();
        for(int i = 0; i < numbers.Length - 1; i++)
        {
            for(int j = i + 1; j < numbers.Length; j++)
            {
                int temp = numbers[i] + numbers[j];
                if(!list.Contains(temp)) list.Add(temp);
            }
        }
        return list.OrderBy(element => element).ToArray();
    }
}