본문 바로가기

728x90

deque

[백준알고리즘] 1021번: 회전하는 큐 -Python [백준알고리즘] 1021번: 회전하는 큐 -Python https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 순서대로 주어진다. 위치는 1보다 크거나 같고, N보다 작거나 같은 자연수이다. www.acmicpc.net 저번에는 덱을 c언어로 직접 구현해봤기 때문에 이번에는 그냥 Python으로 풀어봤다. Python에서 제공하는 collections 모듈의 deque을 이용하면 2, 3번 기능인 rotate기능까지 제공하기 때문에 쉽게 문제를 풀 수 있다. 왼쪽 값을 오른쪽.. 더보기
[백준알고리즘] 10866번: 덱 -C [백준알고리즘] 10866번: 덱 -C https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘쨰 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다. www.acmicpc.net 이번 문제는 덱을 직접 구현하는 문제이다. 그래서 문제를 보기 전에는 그냥 파이썬이나 자바로 풀 생각을 해봤는데 오랜만에 링크드 리스트를 만들어 볼 겸 C로 작성을 했다. 일단 링크드리스트를 만들기 위해서 구조체를 만들어 주어야 한다. 구조체 멤버로 data와 링크를 걸 노드들을 가리킬 next, previ.. 더보기
[백준알고리즘] 1966번: 프린터 큐 -Python [백준알고리즘] 1966번: 프린터 큐 -Python https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 www.acmicpc.net 이전에 푼 2164번 문제처럼 큐의 문제를 덱을 사용해서 풀 것이다. 여기서는 P.. 더보기
[백준알고리즘] 2164번: 카드2 -Python [백준알고리즘] 2164번: 카드2 -Python https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다. 예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리 www.acmicpc.net 큐를 이용한 문제를 푸는 것이다. 파이썬으로 큐 모듈이 있던 것 같아서 찾던 와중에 쓰기.. 더보기

728x90