잡다한 배똥월드

728x90
코딩 테스트 풀이 체크리스트
2시간 내에 풀었는가? X
본인의 실력으로 풀었는가? X

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

 

import java.util.*;
class Solution {
    int row, col;
    Deque<Integer> side1, side2;
    Deque<Deque<Integer>> inside;
    public int[][] solution(int[][] rc, String[] operations) {
        row = rc.length;
        col = rc[0].length;
        int[][] answer = new int[row][col];
        
        side1 = new LinkedList<>();
        side2 = new LinkedList<>();
        inside = new LinkedList<>();
        
        for (int i = 0; i < row; i++) {
            inside.addLast(new LinkedList<>());
            for (int j = 0; j < col; j++) {
                if (j == 0) side1.addLast(rc[i][j]);
                else if (j == col-1) side2.addLast(rc[i][j]);
                else inside.peekLast().addLast(rc[i][j]);
            }
        }
        
        for (int i = 0; i < operations.length; i++) {
            if (operations[i].equals("Rotate")) {
                rotate();
            } else {
                shiftRow();
            }
        }
        
        for (int i = 0; i < row; i++) {
            for (int j = 0; j < col; j++) {
                if (j == 0) answer[i][j] = side1.removeFirst();
                else if (j == col-1) answer[i][j] = side2.removeFirst();
                else answer[i][j] = inside.peekFirst().removeFirst();
            }
            inside.removeFirst();
        }
        
        return answer;
    }
    public void shiftRow() {
        side1.addFirst(side1.removeLast());
        side2.addFirst(side2.removeLast());
        inside.addFirst(inside.removeLast());
    }
    
    public void rotate() {
        inside.peekFirst().addFirst(side1.removeFirst());
        side2.addFirst(inside.peekFirst().removeLast());
        inside.peekLast().addLast(side2.removeLast());
        side1.addLast(inside.peekLast().removeFirst());
    }
}

 

 

 

 

 

참고 링크

 

 

 

[프로그래머스,Java] Level4: 행렬과 연산

https://school.programmers.co.kr/learn/courses/30/lessons/118670 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘..

taehoung0102.tistory.com

 

 

 

 

 

 

728x90

+ Recent posts