728x90

deque 6

[Python]백준 BaekJoon.AC 11866 : 요세푸스 문제0(deque, join())

https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 연산으로 계산해 빠르게 풀어야 하는 문제인가 싶었는데, 2초라는 넉넉한(?) 시간을 보곤 한 명씩 처리해가며 풀어도 되겠다 싶었다. 학습한 덱을 적용해보는 간단한 기본 문제였다. 오히려 출력을 어떻게 해줄지 고민을 더 많이 했다. 그냥 리스트를 통채로 출력하면 대괄호에 둘러싸여 나오는데. 화살 괄호..? 꺾인 괄호로 출력하기 위해선 리스트를 for문에 넣고 요소만 빼와야 했다. 이걸 한 번에 구현할 수 있는 멋진 방법이 없을까 생각해봤는데, 내겐 새로운 함수인 join을 사용해보기..

[Python]BaekJoon.AC 2022.01.24

[Python]백준 BaekJoon.AC 10866 : 덱(deque, try-except)

https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 10828-스택, 10856-큐, 이번엔 10866-덱 스택 기본 문제의 마지막인 듯 하다. 애초에 덱으로 문제를 풀어왔기 때문에 이전과 크게 다르지 않다. 명령 가짓수가 많아져 더 추가한 것 말곤 달라진 게 없다. 아래 글을 참고하면 좋겠다. 2022.01.24 - [[Python]BaekJoon.AC] - [Python]백준 BaekJoon.AC 10828 : 스택(deque,..

[Python]BaekJoon.AC 2022.01.24

[Python]백준 BaekJoon.AC 10845 : 큐(deque, try-except)

https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 이전에 했던 10828-스택 변형문제다. 까다롭게 변형된 것도 아니라 기존 틀에 몇 가지만 더해주면 된다. 문제 이름은 '큐'지만... 덱을 이용했다. 파이썬에선 queue와 deque이 뚜렷하게 차별화된 기본 사용법을 가지진 않는 것 같다. 큐보다 덱이 더 기능이 많은 것 같기도 하고... 양방향 추가·추출이 가능한 deque과 그렇지 않은 queue 중 굳이 queue를 사용할..

[Python]BaekJoon.AC 2022.01.24

[Python]백준 BaekJoon.AC 10828 : 스택(deque, try-except)

https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 경우의 수가 많기 때문에 switch문을 사용하면 좋겠지만 파이썬에선 그런 구문이 없다. 하지만 if문의 능력범주가 넓고 이용하기 쉽기 때문에 크게 문제되지 않는 것 같다. 우선 한 줄씩 입력받아 그 라인을 split해 리스트에 저장해주고, if문을 이용해 명령어에 따라 나눠지게 만들었다. 먄악 추가적인 정보가 필요한 명령어라면 아까 저장한 리스트 옆칸엔 반드시 정보가 들어있을 ..

[Python]BaekJoon.AC 2022.01.24

[Python]백준 BaekJoon.AC 10773 : 제로(deque)

https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 가장 최근에 넣은 스택 옆에 저장하고, 가장 최근에 넣은 스택을 꺼내오는 덱을 이용했다. 구현은 그리 어렵지 않아 이만 설명을 마친다. 코드로 이해하는 편이 빠를 것 같다. from collections import deque import sys K = int(input()) deq = deque() result = 0 for i in range(K): num =..

[Python]BaekJoon.AC 2022.01.21

[Python]백준 BaekJoon.AC 2164 : 카드2(deque, queue)

https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 알고리즘 분류가 큐인데.. 큐로 풀었더니 틀림처리 된다... 이유는 시간초과. (큐로 다른 풀이법이 있는건가..) 더보기 import queue N = int(input()) que = queue.Queue() for i in range(N): que.put(i+1) while que.qsize() != 1: que.get() que.put(que.get()) print(que.get()) 아마 ..

[Python]BaekJoon.AC 2022.01.20
728x90