문제 & 난이도
- 큐
- 난이도 : 실버 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 |