[프로그래머스] 배열 뒤집기

최유나·2024년 8월 8일
0

프로그래머스

목록 보기
45/53

✨ 배열 뒤집기

나의 풀이

// solution 1 : for()/ push()
function solution(num_list) {
    let reverse = [];
    for(let i = num_list.length -1; i >= 0; i--){
        // 맨 앞에 null값이 존재하기 때문에 num_list.length -1을 해 null 삭제
        reverse.push(num_list[i]);
    }
    return reverse;
}

for문을 이용한 배열 뒤집기
전제 조건인 i를 숫자의 길이로 설정한 후 맨 앞에 null값이 존재하기 때문에 -1을 해 null을 삭제한다.
i가 0보다 크거나 같을 때 i를 내림차순으로 돌려준다.
그 다음 선언해둔 reverse 배열에 num의 i번째 값을 넣어 준 후 리턴한다.

// solution 2 : reverse() 
const solution = (num_list) => num_list.reverse()join('');
}

reverse() 메서드를 사용한 배열 뒤집기
.reverse() 메서드를 통해 배열을 반전 시킨다.
.join('')으로 ''를 기준으로 합쳐 주며 ''를 제거한다.

// solution 3 : reverse(), spead 깊은 복사(원본배열 살아 있음) 
const solution = (num_list) => [...num_list].reverse();

spead 메서드를 사용한 문자열 뒤집기
원본의 배열값을 그대로 두고 리턴값만 변경하고 싶어 연습해 보았다.

// solution 4 : sort() 
const solution = (num_list) => num_list.sort((a, b) => -1);

sort() 메서드를 사용한 문자열 뒤집기
sort()를 이용해 문자를 내림차순으로 뒤집는데, 원래는 sort((a,b) => b-a)로 정렬하나, 세번째 케이스인 [5,3,1,1,1,0,1]의 경우에서는 마지막0이 1보다 앞에 배치되어야 하기 때문에 -1로 설정한다.

사용한 메서드
[...Array] : 원본의 배열값을 그대로 두고 리턴값을 변경하고 싶을때 spead연산자를 통해 배열을 복사함(원본 배열은 변경 X)
Array.reverse() : 배열의 순서를 뒤집어 반환(원본 배열이 변형)
Array.join('') : 배열의 모든 요소를 연결해 하나의 문자열로 만듬, separator를 생락하면 쉼표(, ) 로 구분된다.

(출처 : String.prototype.split())
(출처 : Array.prototype.join())
(출처 : Array.prototype.sort())
(출처 : Array.prototype.reverse())

다른사람의 풀이

const solution = (num_list) => num_list.sort((a, b) => -1);

이렇게 화살표 함수를 사용하여 한줄로 코드를 깔끔하게 적을 수도 있다.

0개의 댓글

관련 채용 정보