Coding Test/beakjoon

[백준/Java] 24511번 - queuestack

굠민 2024. 9. 29. 16:29
문제 & 난이도

  • 난이도 : 실버 3

 

풀이
package FirstWeek.QueueStack.CWKM;

import java.util.Scanner;

public class beakjoon24511 {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        //첫째 줄 - 자료구조의 개수 N
        int N = sc.nextInt();
        sc.nextLine(); //개행 제거

        //행에는 순서를 나타내는 값을, 열에는 자료구조(스택, 큐)형태와 각 자료구조 안의 요소값을 넣을 배열 생성
        int[][] A = new int[N][N];


        //둘째 줄 - 자료구조 형태 입력
        for (int i = 0; i < N; i++) {
            A[i][0] = sc.nextInt();
        }

        //셋째 줄 - 요소값 입력
        for (int i = 0; i < N; i++) {
            A[i][1] = sc.nextInt();
        }

        //넷째 줄 - 삽입할 수열의 길이 M
        int M = sc.nextInt();
        sc.nextLine();

        //다섯째 줄 - 삽입할 원소를 담고 있는 길이M의 수열 C
        int[] C = new int[M];
        for (int i = 0; i < M; i++) {
            C[i] = sc.nextInt();
        }

        for (int i = 0; i < M; i++) {
            int result=C[i];
            for (int j = 0; j < N; j++) {
                //j번째 자료구조가 큐인 경우
                if(A[j][0]==0){
                    int temp = result;
                    result = A[j][1];
                    A[j][1]= temp;
                }
                //j번째 자료구조가 스택인 경우
                else if (A[j][0]==1) {
                    A[j][1]=result;
                }
            }
            System.out.print(result+" ");
        }

    }
}

 

참고 링크

(스터디 구성원 전부 문제 이해에 시간을 많이 쏟았던 문제로, 나의 경우 아래 블로그 속 그림들을 참고해서 이해했다. )

# 114. queuestack [24511].. : 네이버블로그 (naver.com)

 

알게 된 것 & 느낀 점

 

해당 주차 주제가 큐, 스택이어서 배열 풀이법이 떠올랐지만 본질에 집중하려 큐와 스택 구조 인스턴스를 생성하여 풀어보려 했는데 그럼 이제 동적 큐 등 새로운 내용이 많아져서 결국 제일 간단한 알고리즘 배열구조를 사용해서 풀었다. 

그리고 해당 문제는 기능을 잘 활용하는 것 보다는 문제 이해를 잘해서 자료구조가 스택인 경우를 패스하고, 큐인 경우만 신경 써주면 된 다는 것을 파악하면 금방 풀 수 있는 것 같다. 그러니 항상 문제를 풀 때에는 문제 이해에 집중을 두자! 

 

 

 

'Coding Test > beakjoon' 카테고리의 다른 글

[백준/Java] 1083번 - 소트  (0) 2024.09.23
[백준/Java] 12904번 - A와 B  (3) 2024.09.19
[백준/Java] 11000번 - 강의실 배정  (1) 2024.09.17
[백준/Java] 9012번 - 괄호  (0) 2024.09.17
[백준/Java] 1931번 - 회의실 배정  (0) 2024.09.16