peacekim
할 수 있는 것과 할 수 없는 것.
peacekim
전체 방문자
오늘
어제
  • 분류 전체보기 (68)
    • 👨‍🏫ps (44)
      • ❄️프로그래머스 (20)
      • 🔟0️⃣백준 (21)
      • leetcode (3)
    • ✍🏻study (20)
      • 👐java (6)
      • 🍃spring (1)
      • 🥇algorithm (0)
      • 🚘oodp (4)
      • 📒 jpa (3)
      • 👣DB (2)
      • 🌂네트워크 (0)
      • 🎸기타 (3)
      • 👊 kotlin (1)
      • 🫥 jvm (0)
    • 📽project (4)
      • 🎀ReBoN (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
peacekim

할 수 있는 것과 할 수 없는 것.

[백준] 16926번 배열 돌리기 1 풀어보기 [Java]
👨‍🏫ps/🔟0️⃣백준

[백준] 16926번 배열 돌리기 1 풀어보기 [Java]

2022. 3. 18. 00:23
반응형

구현 문제였다. 나와있는 그대로 구현하면 되는 문제이다!!

 

👨‍🏫 풀이

맨 겉에서 부터 움직이면서, 안으로 들어갔다!! 그리고 맨 윗줄, 왼쪽줄, 아랫줄, 오른쪽줄 나눠서 구현을 했다!

 

👨🏻‍💻 코드

package 번16926;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    static int N,M,R;
    static int nMax, nMin, mMax, mMin;
    static int[][] map;
    static int[][] temp;
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        N = Integer.parseInt(st.nextToken());
        M = Integer.parseInt(st.nextToken());
        R = Integer.parseInt(st.nextToken());

        map = new int[N][M];
        temp = new int[N][M];

        for(int i = 0 ; i < N ; i++) {
            st = new StringTokenizer(br.readLine());
            for(int j = 0 ; j < M ; j++) {
                map[i][j] = Integer.parseInt(st.nextToken());
                temp[i][j] = map[i][j];
            }
        }

        while(R-- != 0) {
            nMin = 0; nMax = N-1; mMax = M-1 ; mMin = 0;
            while(mMin < mMax && nMin < nMax) {
                move();
                mMin++; mMax--; nMin++; nMax--;
            }
            save();
        }
        print();
    }

    private static void print() {
        for(int i = 0 ; i < N ; i++){
            for(int j = 0 ; j < M ; j++){
                System.out.print(map[i][j] + " ");
            }
            System.out.println();
        }
    }

    private static void save() {
        for(int i = 0 ; i < N ; i++){
            for(int j = 0 ; j < M ; j++){
                map[i][j] = temp[i][j];

            }
        }
    }

    private static void move() {
        //맨 위에 줄
        for(int i = mMax ; i > mMin ; i--){
            temp[nMin][i-1] = map[nMin][i];
        }
        //맨 왼쪽 줄
        for(int i = nMin ; i < nMax ; i++){
            temp[i+1][mMin] = map[i][mMin];
        }
        //맨 아래쪽 줄
        for(int i = mMin ; i < mMax ; i++){
            temp[nMax][i+1] = map[nMax][i];
        }
        //맨 오른쪽 줄
        for(int i = nMax ; i > nMin ; i--){
            temp[i-1][mMax] = map[i][mMax];
        }
    }
}
반응형

'👨‍🏫ps > 🔟0️⃣백준' 카테고리의 다른 글

[백준] 1405번 미친 로봇 풀어보기 [Java]  (0) 2022.03.19
[백준] 16234번 인구 이동 풀어보기 [Java]  (0) 2022.03.18
[백준] 2174번 로봇 시뮬레이션 풀어보기 [Java]  (0) 2022.03.16
[백준] 20058번 마법사 상어와 파이어스톰 풀어보기 [Java]  (0) 2022.03.11
[백준] 20056번 마법사 상어와 파이어볼 풀기 [Java]  (0) 2022.03.11
    '👨‍🏫ps/🔟0️⃣백준' 카테고리의 다른 글
    • [백준] 1405번 미친 로봇 풀어보기 [Java]
    • [백준] 16234번 인구 이동 풀어보기 [Java]
    • [백준] 2174번 로봇 시뮬레이션 풀어보기 [Java]
    • [백준] 20058번 마법사 상어와 파이어스톰 풀어보기 [Java]
    peacekim
    peacekim
    할 수 있는 것과 할 수 없는 것. github: https://github.com/PyeongGangKim

    티스토리툴바