Search

배열9_문제03_연속빈칸찾기

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

영상

문제

package 배열9_문제; /* [문제] arr배열은 숫자1과 0으로 구성되어있다. 숫자1은 이미 채워진 자리이고, 0은 비어있는 자리이다. input변수 값의 의미는 1부터 시작하는 위치를 의미함과 동시에 연속으로 1으로 채울 칸 수를 의미한다. 예를들어 input의 값이 3인 경우, 3번째라는 의미로 인덱스의 값 2부터 3칸이 비어있는지(0) 확인한 후, 비어있으면 전부 1로 변경해야 한다. [정답] input = 3 :: 인덱스 2부터 연속으로 3칸 비어있으므로(0) input = {0, 1, 1, 1, 1, 1, 0, 0} input = 4 :: 인덱스 3부터 연속으로 4칸 비어있지 않으므로 변경X input = {0, 1, 0, 0, 0, 1, 0, 0} input = 1 :: 인덱스 0번째에 1칸 비어있으므로(0) input = {1, 1, 0, 0, 0, 1, 0, 0} */ public class 배열9_문제03_연속빈칸찾기_문제 { public static void main(String[] args) { int[] arr = {0, 1, 0, 0, 0, 1, 0, 0}; int input = 1; } }
Java
복사

해설

package 배열9_문제; import java.util.Arrays; /* [문제] arr배열은 숫자1과 0으로 구성되어있다. 숫자1은 이미 채워진 자리이고, 0은 비어있는 자리이다. input변수 값의 의미는 1부터 시작하는 위치를 의미함과 동시에 연속으로 1으로 채울 칸 수를 의미한다. 예를들어 input의 값이 3인 경우, 3번째라는 의미로 인덱스의 값 2부터 3칸이 비어있는지(0) 확인한 후, 비어있으면 전부 1로 변경해야 한다. [정답] input = 3 :: 인덱스 2부터 연속으로 3칸 비어있으므로(0) input = {0, 1, 1, 1, 1, 1, 0, 0} input = 4 :: 인덱스 3부터 연속으로 4칸 비어있지 않으므로 변경X input = {0, 1, 0, 0, 0, 1, 0, 0} input = 1 :: 인덱스 0번째에 1칸 비어있으므로(0) input = {1, 1, 0, 0, 0, 1, 0, 0} */ public class 배열9_문제03_연속빈칸찾기_정답 { public static void main(String[] args) { int[] arr = {0, 1, 0, 0, 0, 1, 0, 0}; int input = 3; /* input은 (1) 위치 : index (2) 개수 : count 예) input = 4 arr = [0, 1, 0, 0, 0, 1, 0, 0] */ int index = input - 1; int count = input; int total = 0; for(int i=0; i<count; i++) { if(arr[index + i] == 0) { total += 1; } } System.out.println(total); if(count == total) { for(int i=0; i<count; i++) { arr[index + i] = 1; } System.out.println(Arrays.toString(arr)); } else { System.out.println("X"); } } }
Java
복사