728x90
반응형
주어진 배열 a에서 값이 -1이 아닌 요소들을 오름차순으로 정렬하되, -1인 요소들은 원래 위치에 그대로 남겨두어야 하는 문제입니다.
예를 들어, 주어진 배열이 [-1, 150, 190, 170, -1, -1, 160, 180]인 경우, -1이 아닌 숫자들을 오름차순으로 정렬하면 [150, 160, 170, 180, 190]이 됩니다. 이제 이 숫자들을 원래 배열의 -1이 아닌 위치에 삽입해야 합니다. 따라서 결과적으로는 [-1, 150, 160, 170, -1, -1, 180, 190]이 되어야 합니다.
이러한 문제를 해결하기 위해서는 다음과 같은 과정을 거칩니다:
배열에서 -1이 아닌 숫자들을 추출하고 정렬합니다.
원래 배열의 각 위치에 -1이 아닌 숫자들을 순서대로 삽입합니다.
int[] solution(int[] a) {
List<int> withoutTree = a.Where(x => x != -1).OrderBy(x => x).ToList();
int idx = 0;
for(int i = 0;i<a.Length;i++){
if(a[i] != -1){
a[i] = withoutTree[idx++];
}
}
return a;
}
LINQ를 사용하여 -1이 아닌 숫자들을 추출하고 정렬한 후,
이를 원래 배열에 삽입하는 방식으로 문제를 해결합니다.
728x90
반응형
'CodeSignal' 카테고리의 다른 글
reverseInParentheses (0) | 2023.12.03 |
---|---|
alternating Sums (2) | 2023.12.03 |
isLucky (0) | 2023.12.01 |
commonCharacterCount (0) | 2023.11.28 |
All Longest Strings (0) | 2023.11.27 |