본문 바로가기
728x90
반응형

자료구조8

[백준/Python] 1966 프린터 큐 문제: https://www.acmicpc.net/problem/1966  사용 알고리즘: 큐  입력첫 줄에 테스트케이스 수각 테스트케이스별로첫 줄에는 N (1 두번째 줄에는 N 개의 문서의 중요도가 차례로 주어짐 (1 이상 9 이하의 정수, 같은 중요도가 있을 수 있음) 규칙1. 현재 큐의 맨 앞에 있는 문서의 중요도를 확인2. 나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 큐의 가장 뒤에 배치하고 그렇지 않다면 바로 인쇄  전체 코드from collections import dequeimport sysinput = sys.stdin.readlineT = int(input()) # 테스트케이스 수for _ in range(T): N, M = map.. 2024. 8. 8.
[백준/Python] 2164 카드2 문제: https://www.acmicpc.net/problem/2164  사용 알고리즘: 덱  입력첫째 줄에 정수 N (1  N 장의 카드가 순서대로 쌓여있을 때, 카드가 한 장만 남을 때까지 아래의 동작을 반복1. 맨 위에 있는 카드 제거2. 제거되고 맨 위로 나온 카드를 맨 아래에 넣음 -> 앞뒤로 추가/제거가 가능하니 덱을 사용해 구현해야겠다  이 문제는 정말 문제대로만 구현하면 되는 간단한 문제였다.  대신 for 문을 N 회가 아닌 (N-1) 회 돌아야 한다. (덱에 카드가 1장 남았을 때 종료해야 하므로)d = deque(i for i in range(1,N+1)) # 덱에 1~N 번의 카드를 미리 넣음for i in range(1, N): d.popleft() # 맨 위 카드 제거 .. 2024. 8. 5.
[백준/Python] 11866 요세푸스 문제 0 문제: https://www.acmicpc.net/problem/11866  사용 알고리즘: 덱  입력첫째 줄에 N 과 K 가 빈 칸을 사이에 두고 순서대로 주어짐 (1   1 번부터 N 번까지 N 명의 사람이 원을 이루며 앉아있을 때, N 명의 사람이 모두 제거될 때까지 K 번째 사람을 제거해 나감.-> 앞 뒤로 추가/제거가 가능한 덱을 사용해서 원처럼 동작하도록 구현 입력이 7 3 인 경우,1 2 3 4 5 6 7 의 숫자를 가진 사람들이 원을 그리며 앉아 있을 때, 3 번째 사람을 계속해서 제거해 나가야 한다. - 1 을 제거하고 다시 뒤에 붙임 2 3 4 5 6 7 1 - 2를 제거하고 다시 뒤에 붙임3 4 5 6 7 1 2 - 3을 제거 (K = 3)4 5 6 7 1 2  for 문을 돌면서 K.. 2024. 8. 5.
[백준/Python] 2346 풍선 터뜨리기 문제: https://www.acmicpc.net/problem/2346  사용 알고리즘: 덱  입력첫째 줄에 자연수 N (1 둘째 줄에는 차례로 각 풍선 안의 종이에 적혀 있는 수가 주어짐 (종이에 0은 적혀있지 않음) 구현 로직1. 가장 먼저 1번 풍선을 터트려서 종이에 적힌 숫자 만큼 이동2. 도착한 곳의 풍선을 터트려 종이에 적힌 숫자만큼 이동3. 풍선이 다 터질 때까지 2를 반복  아래 그림처럼 원형으로 놓인 풍선을 일자로 핀다고 생각하면 된다.나는 덱의 0번째 인덱스를 기준점으로 잡고 숫자를 돌리다가 이 자리에 온 숫자를 pop 할 것이다.   풍선 안에 적힌 종이에는 0을 제외하고 -N 이상 N 이하의 정수가 적혀있는데, 도는 방향이 다르기 때문에 음수와 양수일 경우를 나눠서 처리해야 한다... 2024. 8. 1.
728x90
반응형