Search

이차반복문5_문제11_인풋추가삭제

대분류
STEP07 이차반복문
문제 난이도
LV07
소분류
이차반복문5_문제

영상

문제

<script> /* [문제] arr배열에 value의 값을 추가 하거나 삭제 한다. order의 값이 1이면 value값을 추가한다. order의 값이 2이면 value값을 삭제한다. 단, 추가할 값이 arr배열에 이미 추가되어있으면 "중복" 출력하시오. 단, 삭제할 값이 arr배열에 없으면 "삭제 불가" 출력하시오. order = 1 , value = 10 , arr = [10] order = 2 , value = 20 , arr = [10] , "삭제 불가" order = 1 , value = 30 , arr = [10, 30] order = 2 , value = 10 , arr = [30] order = 1 , value = 30 , arr = [30] , "중복" order = 2 , value = 30 , arr = [] */ let arr = []; let order = [1, 2, 1, 2, 1, 2]; let value = [10, 20, 30, 10, 30, 30]; </script>
Java
복사

해설

<script> /* [문제] arr배열에 value의 값을 추가 하거나 삭제 한다. order의 값이 1이면 value값을 추가한다. order의 값이 2이면 value값을 삭제한다. 단, 추가할 값이 arr배열에 이미 추가되어있으면 "중복" 출력하시오. 단, 삭제할 값이 arr배열에 없으면 "삭제 불가" 출력하시오. order = 1 , value = 10 , arr = [10] order = 2 , value = 20 , arr = [10] , "삭제 불가" order = 1 , value = 30 , arr = [10, 30] order = 2 , value = 10 , arr = [30] order = 1 , value = 30 , arr = [30] , "중복" order = 2 , value = 30 , arr = [] */ let arr = []; let order = [1, 2, 1, 2, 1, 2]; let value = [10, 20, 30, 10, 30, 30]; let count = 0; for(let i=0; i<order.length; i++) { if(order[i] == 1) { // 중복 확인 let check = false; for(j=0; j<count; j++) { if(value[i] == arr[j]) { check = true; break; } } if(check) { document.write("중복 : "); } else { arr.push(value[i]); count += 1; } } else if(order[i] == 2) { // 값 확인 let check = -1; for(let j=0; j<count; j++) { if(value[i] == arr[j]) { check = j; break; } } if(check == -1) { document.write("삭제 불가 : "); } else { arr.splice(check, 1); count -= 1; } } document.write("arr = " + arr + "<br>"); } </script>
Java
복사