기본 틀 :
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();
}
}
'문제 풀기 > C#' 카테고리의 다른 글
51. 푸드 파이트 대회 (0) | 2025.02.05 |
---|---|
50. 가장 가까운 글자 (0) | 2025.02.04 |
48. K번째 수 정렬(Skip, Take 메서드) (1) | 2025.02.04 |
47. (중요)문자열 내 마음대로 정렬하기(ThenBy, ThenByDescending 함수) (0) | 2025.02.03 |
46. 숫자 문자열과 영단어(Replace 함수) (0) | 2025.02.03 |