ALGORITHM/Inflearn
장난꾸러기 현수
Harimad
2022. 3. 16. 14:53

문제
2명 빼고 오름차순으로 번호가 적혀있다.
오름차순이 아닌 번호의 자리번호를 출력하시오.
입력예제 1
120 125 152 130 135 135 143 127 160
출력예제 1
3 8
입력예제 2
120 130 150 150 130 150
출력예제 2
3 5
풀이
1. 함수에 입력된 배열인자를 새 변수에 깊은 복사를한다.
2. 그리고 오름차순으로 정렬한다.
3. 함수에 입력된 배열인자와 새로 정렬된 배열을 비교한다.
4. 두 배열이 다른 요소를 가진 index+1을 answer배열 변수에 push한다.
코드
<script>
function solution(arr){
let answer=[];
let sortedArr = [...arr].sort((a, b) => a - b); //arr.slice()로 깊은복사 가능 // 1, 2
arr.forEach((val, idx) => { // 3
if (val !== sortedArr[idx]) answer.push(idx+1); // 4
})
return answer;
}
let arr=[120, 125, 152, 130, 135, 135, 143, 127, 160];
console.log(solution(arr)); // [3, 8]
let arr2 = [120, 130, 150, 150, 130, 150];
console.log(solution(arr2)); // [3, 5]
</script>
출처
자바스크립트 알고리즘 문제풀이(코딩테스트 대비) - 인프런 | 강의
자바스크립트(JavaScript)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 재미있게 풀 수 있는 기초 단계 문제부터 고급 알고리즘까지 단계별로 차근차근 배우도록 설계된 강좌입니다., - 강의
www.inflearn.com