큐
-
[백준 1021번] 회전하는 큐Coding Test/백준 2021. 1. 5. 21:26
# 문제 내 풀이 from collections import deque # 큐를 왼쪽으로 회전시키는 함수 정의 def move_left(nums): nums.append(nums.popleft()) # 큐를 오른쪽으로 회전시키는 함수 정의 def move_right(nums): nums.appendleft(nums.pop()) n, m = map(int, input().split()) targets = list(map(int, input().split())) # 뽑아내려는 원소의 위치 nums = deque([i + 1 for i in range(n)]) # 초기의 큐 result = 0 # 순환 횟수 저장 for target in targets: idx = nums.index(target) # 찾아야 ..
-
[백준 1966번] 프린터 큐Coding Test/백준 2021. 1. 5. 02:07
# 문제 내 풀이 from collections import deque t = int(input()) for num in range(t): n, m = map(int, input().split()) # 문서마다 중요도 입력 받음 importance = list(map(int, input().split())) # 각 문서의 순서와 중요도를 묶은 튜플을 원소로 갖는 큐 생성 queue = deque(enumerate(importance)) cnt = 0 # 인쇄 횟수 저장 while queue: pass_print = False idx, val = queue.popleft() # 만일 큐의 가장 앞 문서의 중요도보다 중요도가 높은 문서가 존재한다면 for i in range(len(queue)): if qu..
-
[백준 11866번] 요세푸스 문제 0Coding Test/백준 2021. 1. 5. 01:59
# 문제 내 풀이 n, k = map(int, input().split()) nums = [i for i in range(1, n + 1)] # 1 ~ n까지의 수를 오름차순으로 생성 queue = [] # 요세푸스 순열을 저장할 리스트 생성 idx = 0 # nums가 빌 때까지 while nums: idx = (idx + k - 1) % len(nums) # 수열에서 k번째 수의 인덱스 구하기 queue.append(nums.pop(idx)) # k번째 수를 제거하고 순열로 만듬 print('') 주목할 점 리스트를 str()하면 괄호 그대로 '[x, x, ...]'로 변환됨을 기억하자!
-
[프로그래머스 42586번] 기능개발Coding Test/프로그래머스 2020. 11. 17. 18:48
# 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. # 제한 사항 · 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. · 작업 진도는 100 미만의 자연수입니다. · 작업 속도는..
-
[자료구조] 스택(Stack)과 큐(Queue)Computer Science/자료구조 & 알고리즘 2020. 10. 20. 16:18
# 스택(Stack) 스택 자료구조는 상자 쌓기와 비슷하다. 차곡 차곡 아래서부터 위로 상자를 쌓아 나가면, 상자를 뺄 때는 상자들이 무너지지않게 맨 위의 가장 나중에 쌓은 상자부터 빼야 한다. 스택도 마찬가지다. 가장 나중에 들어온 데이터를 가장 먼저 빼는 후입선출(LIFO: Last In First Out) 구조를 가진다. 파이썬에서는 별도의 라이브러리 없이 기본 리스트 자료형으로 스택을 쉽게 구현할 수 있다. # Stack으로 삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제() 구현 stack = [] stack.append(5) stack.append(2) stack.append(3) stack.append(7) stack.pop() stac..
-
[OS] 3-1. ProcessComputer Science/운영체제 2020. 9. 16. 23:41
# 프로세스(Process)의 개념 1. 프로세스 : 실행중인 프로그램을 의미한다. 2. 프로세스의 문맥(Context) : 프로세스의 현재 진행 상태를 알려주는 것 ∵ time sharing, multitasking 등의 실현은 각 프로세스의 문맥을 정확히 기록해두어야 가능하다! - 하드웨어 문맥 : CPU의 수행 상태를 나타냄 ex) Program Counter, 각종 register → CPU 관점에서 파악! - 프로세스의 주소 공간 : 어떤 자료구조가 어떤 값을 가지고 있는지, 어떤 함수가 호출되고 return되는지 등을 파악함 ex) code, data, stack → 메모리 관점에서 파악! - 프로세스 관련 커널 자료 구조 ex) PCB(Process Control Block), Kernel ..