Search

배열8_문제12_압축하기

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

영상

문제

package 배열8_문제; /* [문제] 아래 before배열은 압축하기 전의 데이터이다. 연속으로 이뤄진 데이터를 모아 압축하려 한다. 예) 33 => {3, 2} 55555 => {5, 5} ... after 배열의 0번은 압축할 값, 1번은 연속된 수의 개수를 저장하고, 그 값을 전부 출력하시오. [정답] 33 ==> {3,2} 55555 ==> {5,5} 3 ==> {3,1} 444 ==> {4,3} */ public class 배열8_문제12_압축하기_문제 { public static void main(String[] args) { int[] before = {3, 3, 5, 5, 5, 5, 5, 3, 4, 4, 4}; int[][] after = new int[4][2]; } }
Java
복사

해설

package 배열8_문제; import java.util.Arrays; /* [문제] 아래 before배열은 압축하기 전의 데이터이다. 연속으로 이뤄진 데이터를 모아 압축하려 한다. 예) 33 => {3, 2} 55555 => {5, 5} ... after 배열의 0번은 압축할 값, 1번은 연속된 수의 개수를 저장하고, 그 값을 전부 출력하시오. [정답] 33 ==> {3,2} 55555 ==> {5,5} 3 ==> {3,1} 444 ==> {4,3} */ public class 배열8_문제12_압축하기_정답 { public static void main(String[] args) { int[] before = {3, 3, 5, 5, 5, 5, 5, 3, 4, 4, 4}; int[][] after = new int[4][2]; // after[0][0] 0열 : 숫자(3) // after[0][1] 1열 : 개수(2) after[0][0] = before[0]; after[0][1] = 1; /* after = [ [3, 1], [0, 0], [0, 0], [0, 0], ] y = 0, i = 1 after[0][0] == before[1] true after = [ [3, 2], [0, 0], [0, 0], [0, 0], ] y = 0, i = 2 after[0][0] == before[2] false y = 1 after[1][0] = 5 after[1][1] = 1 after = [ [3, 2], [5, 1], [0, 0], [0, 0], ] .... */ int y = 0; for(int i=1; i<before.length; i++) { if(after[y][0] == before[i]) { after[y][1] += 1; } else { y += 1; after[y][0] = before[i]; after[y][1] = 1; } } for(int i=0; i<after.length; i++) { System.out.println(Arrays.toString(after[i])); } } }
Java
복사