배열에서 값 삭제하기
RULE
- 배열에서 해당 항목의 값을 삭제한다.
- 배열 뒤의 항목은 -1로 설정한다.
- 배열을 출력할 때는 -1인 항목은 출력하지 않는다.
출제의도
- 배열의 인덱스를 활용해 삭제를 할 수 있는가? (앞으로 당길 수 있는지)
- 삭제된 배열에 대해 빈 자리를 -1(초기값)으로 설정하는가?
public class DeleteValue {
static void deleteValue(int[] arr, int value) {
int valueIndex = -1;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == value) {
valueIndex = i;
break;
}
}
if (valueIndex == -1) {
return;
}
for (int i = valueIndex+ 1; i < arr.length; i++) {
arr[i - 1] = arr[i];
}
arr[arr.length-1] = -1;
}
public static void main(String[] args) {
int[] arr = {100, 200, 300};
deleteValue(arr, 100);
for (int value : arr) {
if (value == -1)
break;
System.out.println(value);
}
}
}
200
300
- 출제의도
- 1번과 다른 방법으로 문제를 해결할 수 있는가?
- for 문에서 초기값을 바깥에 설정할 수 있는가?
public class deleteValue2 {
static void deleteValue(int[] arr, int value) {
int i;
for (i = 0; i < arr.length; i++) {
if (arr[i] == value) {
break;
}
}
//반복문 돌떄까지 못찾음
if (i == arr.length) {
return;
}
for (i++; i < arr.length; i++) {
arr[i - 1] = arr[i];
}
arr[arr.length-1] = -1;
}
public static void main(String[] args) {
int[] arr = {100, 200, 300};
deleteValue(arr, 200);
for (int value : arr) {
if (value == -1)
break;
System.out.println(value);
}
}
}
100
300
'Algorithm' 카테고리의 다른 글
[Algorithm] 짝수 개수 구하기 (0) | 2021.07.16 |
---|