목록queue (14)
기록방
👉 문제링크 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 🔸 문제 분석 🔸 카드 리스트에서 첫 번째 카드를 버리고, 가장 위로온 카드를 마지막으로 교체해 가며 마지막 1장을 출력한다. 🔸 코드 🔸 from collections import deque N = int(input()) arr = deque(range(1,N+1)) while len(arr) > 1: arr.popleft() arr.rotate(-1) print(arr[0]) 🔸 코드 해석 🔸 맨 앞 원소를 지우고, 전체 로테이션이 필요하므로 데..
👉 문제링크 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 🔸 문제 분석 🔸 입력 값에 따라 요세푸스 순열을 구현한다. 원형으로 앉아있는 N명의 사람들 중 마지막 한 명이 남을 때까지 K번째 사람을 제거한다. 🔸 코드 🔸 N, K = map(int,input().split()) arr = list(range(1,N+1)) print("",sep="") 🔸 코드 해석 🔸 사람들의 인덱스를 기억하기 위해 1부터 N까지의 값을 리스트로 저장한다. 현재 index에서 K를 더한 위치의 사람을 제거한다. 더한 위치 값이 전체 길이를 초과하지 않도록 % 연산을 수행한다. 제거는 pop을 사용한다. 🔸 e..
👉 문제링크 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 www.acmicpc.net 🔸 문제 분석 🔸 문제가 좀 길었지만 어려운 조건은 아니다. 4가지 톱니가 있는데, 그 중 하나를 돌렸을때 다른 톱니 상태가 어떻게 변하는지 구하면 된다. 각 톱니 상태는 vector 를 쓰면 될 것 같고, 옆 톱니에게 영향을 주는 것은 마치 BFS의 원리와 비슷한 것 같아서 queue를 사용했더니 쉽게 풀렸다. 🔸 코드 🔸 #include #include #include #include using namespace std; void turn(v..
큐 : 데이터를 일시적으로 저장하기 위해 사용하는 자료구조. 선입선출(FIFO, First In First Out) [ 기능 ] enque : 큐에 데이터를 넣음 deque : 큐의 맨 앞 데이터를 꺼냄 peek(front) : 큐의 맨 앞 데이터를 알림(엿봄) indexOf : 큐에 특정 값이 있는지, 있다면 어느 위치에 있는지 알림 size : 큐의 데이터 수 확인 clear : 큐 비우기 isEmpty : 큐가 비었는지 확인 isFull : 큐가 가득 찼는지 확인 dump : 큐의 모든 데이터 확인 [ python ] class Queue: def __init__(self): print('\n-- 큐 프로그램 --') self.st = [] self.max = 1000 def enque(self, ..