알고리즘 문제 풀이

[TIL] JavaScript 알고리즘 100일 챌린지 26번째 도전

whale3 2023. 5. 29. 16:56

숫자 배열이 주어졌을때 각 숫자의 크기 순서가 담긴 배열을 리턴하는 것이다. 만약 [1, 72, 10] 이 주어졌다면 [3, 1, 2] 를 리턴해야 한다. 

나는 아래와 같이 풀었다

1) 주어진 배열을 slice 로 얕은 복사 후, sort로 큰 순서대로 정렬

2) 정렬한 배열을 반복문 돌면서 크기 순위를 객체에 기록

3) 본래 주어진 배열을 map 돌면서 2번의 객체에서 각 요소의 크기 순위를 찾아 담은 배열을 리턴

 

이렇게 해도 맞긴 하지만 좀 더 간단하게 푸는 방법이 있었다. 주어진 배열을 slice 후 정렬하는 것까진 똑같다. 그 후에 주어진 배열을 map을 돌면서 정렬된 배열에서 각 요소가 몇 번째 index에 있는지 indexOf를 사용해 찾은 다음 거기에 1을 더해서 리턴하는 방법이다. 

 

 

 

https://youtu.be/JAJUIlSFOPw

 

반응형