작성
·
223
0
기존 arr의 원소들을 answer로 push하지 않고, 참조 복사 후 조건에 안맞으면 삭제하는 방향으로 진행했습니다.
궁금한 것은 if 문이 시작되기 전에 콘솔에 i와 i+1을 찍어보면 인덱스가
(0,1)(1,2)(2,3),(3,4)씩 차례대로 비교가 되는데
똑같은 방법으로 콘솔에 answer[i], answer[i+1]을 찍어보면 순차적으로 비교하지 않고
(0,1)(2,3)(4,5)씩 비교합니다.
왜 이런 결과가 나오는지 알 수 있을까요?
답변 3
0
안녕하세요^^
i가 0일때,
if 문이 참이되어 answer.splice(i+1, 1);를 하게 되면
1번 인덱스에 있는 3이 지워지면 2번 인덱스에 있던 9가 1번 인덱스 위치로 당겨집니다. 그 효과 때문에 answer값을 출력하면 그렇게 보이는 것입니다.
0
function solution (arr) {
let answer = arr;
// push로 추가하는게 아니라 기존 배열 복사 후 조건이 아닐 경우 삭제.
for (let i = 0; i < answer.length; i++) {
if (answer[i] > answer[i+1]) {
answer.splice(i+1, 1);
}
}
return answer;
}
let arr=[7, 3, 9, 5, 6, 12];
console.log(solution(arr));
코드 올렸습니다 ! :)
0