Search

배열8_문제11_압축풀기

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

영상

문제

package 배열8_문제; /* [문제] 아래 arr배열은 압축한 데이터이다. 데이터는 2개씩 짝을 이룬다는 규칙이 있다. (1) 앞의 숫자 : 데이터 (2) 뒤의 숫자 : 개수 예) {3, 2} => 33 {5, 6} => 555555 ... 결국 실제 데이터는 335555552444 인 것이다. 아래 temp 배열을 위 데이터의 크기만큼 생성하고, 각각의 값을 저장 후 출력하시오. [정답] temp = {3,3,5,5,5,5,5,5,2,4,4,4} */ public class 배열8_문제11_압축풀기_문제 { public static void main(String[] args) { int[][] arr = { {3, 2}, {5, 6}, {2, 1}, {4, 3} }; int[] temp = null; } }
Java
복사

해설

package 배열8_문제; import java.util.Arrays; /* [문제] 아래 arr배열은 압축한 데이터이다. 데이터는 2개씩 짝을 이룬다는 규칙이 있다. (1) 앞의 숫자 : 데이터 (2) 뒤의 숫자 : 개수 예) {3, 2} => 33 {5, 6} => 555555 ... 결국 실제 데이터는 335555552444 인 것이다. 아래 temp 배열을 위 데이터의 크기만큼 생성하고, 각각의 값을 저장 후 출력하시오. [정답] temp = {3,3,5,5,5,5,5,5,2,4,4,4} */ public class 배열8_문제11_압축풀기_정답 { public static void main(String[] args) { int[][] arr = { {3, 2}, {5, 6}, {2, 1}, {4, 3} }; int[] temp = null; // 1. temp배열의 길이 구하기 int count = 0; for(int i=0; i<arr.length; i++) { count += arr[i][1]; } System.out.println("count = " + count); // 2. 1번에서 구한 길이만큼의 temp배열을 생성 temp = new int[count]; // 3. 문제에서 요구한 데이터를 temp배열에 저장 /* index = 0 i = 0, value=3, size=2 j = 0 temp = [3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] index = 1 j = 2 temp = [3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] index = 2 i = 1, value=5, size=6 j = 0 temp = [3, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0] index = 3 j = 1 temp = [3, 3, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0] index = 4 .... */ int index = 0; for(int i=0; i<arr.length; i++) { int value = arr[i][0]; // 3값 int size = arr[i][1]; // 2회 for(int j=0; j<size; j++) { temp[index] = value; index += 1; } } System.out.println(Arrays.toString(temp)); } }
Java
복사