코딩테스트/Programmers

[Programmers] 입문) 배열 뒤집기

HONGGG 2023. 6. 27. 02:25

 

이번 문제는 딱히 별 생각 없이 진행했다.

만능인 STL에 이정도 함수가 없을리가 없다 생각해서이다.

 

예상은 적중했고 Array.Reverse함수를 발견했다.

해당 함수는 System만 포함되어도 사용할 수 있는 기본 전역 함수이기에 사용도 용의했다.

 

한가지 주의 사항이라면 Array.Reverse는 전역 함수로 반환 값이 없고 배열 자체를 뒤집는 것이기에 Array.Reverse자체를 반환하려는 뻘짓은 하지말자.

 

또한 배열에 바로 Reverse함수를 실행할 수도 있는데 이 경우 IEnumerable형 반환이 일어나기에 ToArray함수를 한번 더 거쳐야한다.

 

1. 배열을 순차적으로 순서를 거꾸로 변경한다.

2. ToArray를 통해 새로운 배열을 메모리에 할당한다.

 

위 과정을 모두 거쳐야하기에 되려 훨씬 느리고 메모리도 많이 잡아먹는 잡식성 괴물이 탄생한다. (Linq를 포함해야하는건 덤)

 

using System;

public class Solution {
    public int[] solution(int[] num_list) {
        Array.Reverse(num_list);
        return num_list;
    }
}