Development Palette

2차원 배열 지그재그 본문

Algorithm/개념

2차원 배열 지그재그

징주 2021. 8. 5. 02:08

지그재그 우선탐색

int[][] arr = {
    {1,2,3,4},
    {5,6,7,8},
    {9,10,11,12},
    {13,14,15,16}
};

int R = arr.length;
int C = arr[0].length;

// 지그재그 우선탐색 
for (int i = 0; i < R; i++) {
	for (int j = 0; j < C; j++) {
		int temp = (i%2==0)?j:C-1-j;
		System.out.print(arr[i][temp]+" ");
	}
	System.out.println();
}

짝수 index일때는 arr[i][j]그대로 이지만, 홀수 index일 때는 시작점이 달라지므로 arr[i][temp]로 temp값을 이용해 열을 바꿔주면 된다. 

int temp = (i%2==0)?j:c-1-j;

짝수일 때는 그대로 j열이고, 홀수일 때 마지막 열index가 c-1하고 반대로 j만큼 감소하므로 c-1-j 이다.

index의 규칙성!!

'Algorithm > 개념' 카테고리의 다른 글

[순열, 조합] NextPermutation  (0) 2021.08.18
이진 검색  (0) 2021.08.18
분할 정복 기법  (0) 2021.08.18
그리디, 탐욕 알고리즘  (0) 2021.08.18
[재귀, 브루트포스] 순열, 조합, 부분집합  (0) 2021.08.04
Comments