[알고리즘/백준] #16926 배열 돌리기1 (추가 보완 필요)

JudyLia·2022년 2월 9일
0

알고리즘

목록 보기
28/61
post-thumbnail

문제) 배열돌리기1

package algorithm_lab.day05.q1;

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		StringBuilder sb = new StringBuilder();
		
		//입력 처리
		int H = sc.nextInt();
		int W = sc.nextInt();
		int R = sc.nextInt();
		int[][] field = new int[H][W];
		sc.nextLine();
		
		for(int i=0; i<H; i++) {
			for(int j=0;j<W;j++) {
				field[i][j]=sc.nextInt();
			}
			sc.nextLine();
		}
		
		int[] dx = {0, 1, 0, -1};
		int[] dy = {1, 0, -1, 0};
		int cnt = Math.min(H, W)/2;
		
		
		//구현
		for(int i=0;i<R;i++) {
			for(int j=0;j<cnt;j++) {
				int a = j;
				int b = j;
				
				int temp = field[a][b];
				int idx=0;
				
				while(idx<4) {
					int A = a+dx[idx];
					int B = b+dy[idx];
					
					if(A>=j&&B>=j&&A<H-j&&B<W-j) {
						field[a][b]=field[A][B];
						a=A;
						b=B;
					}else {
						idx+=1;
					}
				}
				field[j+1][j]=temp;
			}
		}
		
		//출력
		for (int i=0;i<H;i++) {
			for(int j=0;j<W;j++) {
				sb.append(field[i][j]).append(" ");
			}
			sb.append("\n");
		}
		
		System.out.println(sb.toString());
		
	}
}
profile
안녕:)

0개의 댓글

관련 채용 정보