Search

배열6_문제02_순서삽입

대분류
STEP06 일차배열
문제 난이도
LV07
소분류
일차배열6_문제

영상

문제

<script> /* [문제] 아래 arr배열은 순서대로 값이 저장되어있다. 1~70사이의 랜덤숫자 하나를 저장 후, arr배열의 값들 사이에 저장하려고 한다. 저장 조건은 arr배열의 바로 앞의 값 보다는 크고 바로 뒤의 값 보다는 이하인 위치에 삽입 후 출력하시오. [예시1] r = 5 arr = 5,10,20,30,40,50,60 [예시2] r = 15 arr = 10,15,20,30,40,50,60 [예시3] r = 65 arr = 10,20,30,40,50,60,65 */ let arr = [10, 20, 30, 40, 50, 60]; </script>
Java
복사

해설

<script> /* [문제] 아래 arr배열은 순서대로 값이 저장되어있다. 1~70사이의 랜덤숫자 하나를 저장 후, arr배열의 값들 사이에 저장하려고 한다. 저장 조건은 arr배열의 바로 앞의 값 보다는 크고 바로 뒤의 값 보다는 이하인 위치에 삽입 후 출력하시오. [예시1] r = 5 arr = 5,10,20,30,40,50,60 [예시2] r = 15 arr = 10,15,20,30,40,50,60 [예시3] r = 65 arr = 10,20,30,40,50,60,65 */ let arr = [10, 20, 30, 40, 50, 60]; let r = Math.floor(Math.random() * 70) + 1; document.write("r = " + r + "<br>"); let index = 0; if(r <= arr[0]) { index = 0; } else if(r >= arr[arr.length - 1]) { index = arr.length; } else { for(let i=0; i<arr.length - 1; i++) { if(arr[i] <= r && r <= arr[i + 1]) { index = i + 1; break; } } } document.write("index = " + index + "<br>"); arr.push(0); /* 0 1 2 3 4 5 6 10, 20, 30, 40, 50, 60, 0 index = 2 r = 25 arr[6] = arr[5] arr[5] = arr[4] arr[4] = arr[3] arr[3] = arr[2] 0 1 2 3 4 5 6 10, 20, 30, 30, 40, 50, 60 10, 20, 25, 30, 40, 50, 60 */ for(let i=arr.length - 1; i>index; i--) { arr[i] = arr[i - 1]; } arr[index] = r; document.write("arr = " + arr); </script>
Java
복사