본문 바로가기

Coding Test/Programmers

[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 12 - 배열 뒤집기)

728x90

 

# 문제 12 (배열 뒤집기)

정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요.



# 답안

// 1. 입력: num_list -> 배열 [1,2,3] 같은거
// 2. 출력: num_list의 원소의 순서를 거꾸로 뒤집은 배열 [3,2,1] 같은거

// 방법1) for 반복문 사용
function solution(num_list) {
    const answer = [];
	for(let i=num_list.length-1; i >= 0; i--){
    answer.push(num_list[i]);
    }
	return answer;
}



// 방법2) reverse() 사용 -> 원본 배열이 변형된다. 
function solution(num_list) {
    const answer = num_list.reverse();
    return answer;
}



// 방법3) 원본 배열을 복사한 뒤 reverse() 사용하기 -> 원본 배열이 그대로 유지된다.
function solution(num_list) {
    const answer = [...num_list].reverse();
    return answer;
}



# 인사이트 

// reverse()를 사용하면 배열을 뒤집을 수 있다.
// reverse() 함수는 이 함수를 호출한 배열을 거꾸로 뒤집고, 그 배열을 가리키는 참조값을 반환
// 따라서, 이 함수를 실행시키면 원본 배열이 변형된다. 

// 원본 배열은 그대로 유지하고, 리턴되는 값만 변경하고 싶을 때는 원본 배열을 복사해서 사용하면 된다.
// spread operator(전개 연산자)를 사용하면 배열을 복사할 수 있다. 
// spread operator(전개연산자)는 배열이나 객체에서 element들을 꺼내어, 복사해준다.

 

728x90