Search

배열7_문제10_인풋추가삭제

대분류
STEP05 배열
소분류
배열7_문제

영상

문제

package 배열7_문제; /* [문제] input배열 안의 값들은 추가와 삭제를 반복할 값들로 짝수 인덱스의 값은 "추가"이고, 중복된 값은 추가할 수 없다. 홀수 인덱스의 값은 "삭제"이고, 삭제한 자리는 뒤에서부터 앞으로 밀어내고 0으로 표시한다. 또한 없는 값은 삭제할 수 없다. input배열의 값들을 전부 위와 같은 원리로 arr배열에 처리하고 처리과정을 출력하시오. [정답] [10, 0, 0] 삭제할 값이 없습니다. [10, 30, 0] [30, 0, 0] 중복됩니다. [0, 0, 0] */ public class 배열7_문제10_인풋추가삭제_문제 { public static void main(String[] args) { int[] arr = {0, 0, 0}; int[] input = {10, 20, 30, 10, 30, 30}; } }
Java
복사

해설

package 배열7_문제; import java.util.Arrays; /* [문제] input배열 안의 값들은 추가와 삭제를 반복할 값들로 짝수 인덱스의 값은 "추가"이고, 중복된 값은 추가할 수 없다. 홀수 인덱스의 값은 "삭제"이고, 삭제한 자리는 뒤에서부터 앞으로 밀어내고 0으로 표시한다. 또한 없는 값은 삭제할 수 없다. input배열의 값들을 전부 위와 같은 원리로 arr배열에 처리하고 처리과정을 출력하시오. [정답] [10, 0, 0] 삭제할 값이 없습니다. [10, 30, 0] [30, 0, 0] 중복됩니다. [0, 0, 0] */ public class 배열7_문제10_인풋추가삭제_정답 { public static void main(String[] args) { int[] arr = {0, 0, 0}; int[] input = {10, 20, 30, 10, 30, 30}; /* 0 1 2 3 4 5 짝수(추가) 0 arr = [10, 0, 0] 2 arr = [10, 30, 0] 4 중복되는 값으로 추가할 수 없음 홀수(삭제) 1 삭제할 값이 없음 3 arr = [30, 0, 0] 5 arr = [ 0, 0, 0] */ int index = 0; for(int i=0; i<input.length; i++) { if(i % 2 == 0) { // 추가 // 중복 검사 boolean check = true; for(int j=0; j<index; j++) { if(input[i] == arr[j]) { check = false; break; } } if(check) { arr[index] = input[i]; index += 1; System.out.println(Arrays.toString(arr)); } else { System.out.println("중복됩니다."); } } else { // 삭제 // 삭제할 값이 arr배열에 존재하는 검사 int check = -1; for(int j=0; j<index; j++) { if(input[i] == arr[j]) { check = j; break; } } if(check == -1) { System.out.println("삭제할 값이 없습니다."); } else { for(int j=check; j<arr.length - 1; j++) { arr[j] = arr[j + 1]; } index -= 1; System.out.println(Arrays.toString(arr)); } } } } }
Java
복사