study gomi

[백준/baekjoon] 24511번 queuestack (파이썬) 본문

Practice/Baekjoon

[백준/baekjoon] 24511번 queuestack (파이썬)

공부하곰 2024. 1. 17. 13:58
728x90
반응형

내 제출

# 예시
# 4 자료구조의 개수
# 0(큐) 1(스택) 1(스택) 0(큐)
# 1 2 3 4 => (큐-1) (스택-2) (스택-3) (큐-4)
# 3 삽입할 수열의 길이
# 2 4 7 M의 수열

# 1번 (큐) : 1 - 2 -> 선입 선출 1 반환 -> 2
# 2번 (스택) : 2 - 4 -> 반환된 1 입력 -> 선입후출 1 반환 -> 2 - 4
# 3번 (스택) : 3 - 7 -> 반환된 1 입력 -> 선입후출 1 반환 -> 3 - 7
# 4번 (큐) : 4 -> 반환된 1 입력 -> 선입 선출 4 반환 -> 1

# if 큐 - 스택 - 스택 ..? 큐 첫 번재 원소가 답

# 결과 출력
# print(*queuestack(A, B, C))
from collections import deque

# 사용자 입력
N = int(input())
A = list(map(int, input().split()))
B = list(map(int, input().split()))
M = int(input())
C = list(map(int, input().split()))

queue = deque()
for idx in range(N):
    isQue = A[idx]
    if isQue == 0:
        queue.appendleft(B[idx])

for i in range(M):
    queue.append(C[i])
    print(queue.popleft(), end=' ')

 

문제 접근

- 백준 질문 게시판에서 힌트를 얻었다. https://www.acmicpc.net/board/view/125535

 

글 읽기 - 문제 이해가 잘 안되여

댓글을 작성하려면 로그인해야 합니다.

www.acmicpc.net

- 들어가서 조금 내려보면 이 댓글이 있는데 (rainbow96bear) 설명 읽자마자 이해가 됐다.

- 설명 읽고 종이에 상태를 적어보면 이해가 될 거다.

- 저렇게 적어본 뒤, 초기 상태가 0 1 1에 원소 1 2 3인 경우로 다시 생각해보면 답이 나온다.

- 스택인 경우는 어차피 들어간 것이 바로 팅겨져서 나오니까 패스하고

- 큐의 원소들만 모아주면 된다. 

- 모아준 큐의 원소들 왼쪽부터 차례로 빼주면 됨.

- 추가 참고 : https://velog.io/@yimethan/%EB%B0%B1%EC%A4%80-Python-24511-queuestack

 

결과

- 4번 틀리고 그냥 항복했다.

- 질문 게시판에 다른 사람들이 남긴 글들을 정독했다.

- 너무 쉬운거였다. 아무튼...

728x90
반응형