[백준 3425번] 파이썬 - 고스택
http://www.acmicpc.net/problem/3425 3425번: 고스택 각각의 입력값에 대해서, 해당하는 프로그램을 수행한 뒤, 출력값을 출력하면 된다. 출력값이란 스택에 저장되어 있는 숫자이다. 만약, 프로그램 에러가 발생하거나, 모든 수행이 종료됐을 때 www.acmicpc.net # 조건 창영이는 스택을 조금 변형해서 고스택을 만듦 숫자만 저장 가능하며 아래 10가지 연산을 수행할 수 있다 편의상 스택의 가장 위에 저장된 수 첫 번째 NUM X: X를 스택의 가장 위에 저장한다. (0 ≤ X ≤ 109) POP: 스택 가장 위의 숫자를 제거한다. INV: 첫 번째 수의 부호를 바꾼다. (42 -> -42) DUP: 첫 번째 숫자를 하나 더 스택의 가장 위에 저장한다. SWP: 첫 번째 ..
2022.12.04
[백준 1202번] 파이썬 - 보석 도둑
http://www.acmicpc.net/problem/1202 1202번: 보석 도둑 첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci www.acmicpc.net 단순 정렬을 이용하여 풀릴 것 같지만, 시간초과에 빠지는 문제이다. # 조건 보석점을 털기로 결심한 상덕이 보석이 총 N개 존재하며, Mi와 Vi의 무게와 가격을 가지고 있다. 가방을 K개 가지고 있으며, 각 가방의 최대 무게는 Ci이다. 가방에는 최대 한 개의 보석 훔칠 수 있는 보석의 최대 가격을 구하라 # 입력 첫째 줄에 N과 K가 ..
2022.12.01
[백준 1043번] 파이썬 - 거짓말
http://www.acmicpc.net/problem/1043 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 www.acmicpc.net # 조건 지민이는 썰을 풀 때, 있는 그대로 또는 엄청나게 과장해서 말한다. 되도록이면 과장해서 이야기하려고 하는데 거짓말쟁이는 싫다. 몇몇 사람들은 그 이야기의 진실을 알기 때문에 이 사람들이 파티에 온다면 진실만을 이야기 해야 한다. 당연히, 어떤 사람이 어떤 파티에서는 진실을 듣고, 다른 파티에서는 과장된 이야기를 들었을 때도, 지민이는 거짓말쟁이가 된다. 사람의 수 N이 주어지고 그 이야기의 진실을 아..
2022.11.30
[백준 11286번] 파이썬 - 절댓값 힙
http://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net # 조건 배열에 정수 x를 넣는다. 배열에서 절댓값이 가장 작은 값을 출력하고, 그 값을 배열에서 제거 절댓값이 가장 작은 값이 여러 개일 때는, 가장 작은 수를 출력하고, 배열에서 제거 입력에서 0이 주어진 회수만큼 답을 출력한다. 만약 배열이 비어있는 경우에 0이 주어진다면 0을 출력 # 접근 방법 heapq 모듈을 사용해준다. abs를 이용하여 값을 넣어줄껀데 ( abs(..
2022.10.20
[백준 5430번] 파이썬 - AC
http://WWW.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net # 조건 AC 언어는 정수 배열에 연산을 하기 위해 만든 언어 R(뒤집기)와 D(버리기) 함수가 존재 R은 배열에 있는 수의 순서를 뒤집는 함수이고, D는 첫 번째 수를 버리는 함수 비어있는데 D를 사용하면 에러 첫줄 tc 개수 T 각 테케의 첫 줄에는 수행할 함수 p (1 popleft와 reverse 사용 또한 비어있는 경우가 있으므로 try, except을 이용해준다. # 시간 초과 import sys sys.stdin = open('input.tx..
2022.10.11
[백준 7662번] 파이썬 - 이중 우선순위 큐
https://www.acmicpc.net/problem/7662 7662번: 이중 우선순위 큐 입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫째 줄에는 Q에 적 www.acmicpc.net # 조건 이중 우선순위 큐는 전형적인 우선순위 큐처럼 데이터를 삽입, 삭제할 수 있는 자료구조 전형적인 큐와의 차이점은 데이터를 삭제할 때 연산 명령에 따라 우선순위가 가장 높은 데이터 또는 가장 낮은 데이터 중 하나를 삭제 데이터를 삽입하는 연산과 데이터를 삭제하는 연산 사용 데이터를 삭제하는 연산은 우선순위가 가장 높은 것을 삭제하는 것과 우선순위가 가장 낮은 것을 삭제하는 것으로 나뉜다...
2022.10.09
[백준 1764번] 파이썬 - 듣보잡
https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net # 조건 듣지도 못한 사람의 명단 보지도 못한 사람의 명단이 주어질 때 듣지도 보지도 못한 사람의 명단을 구하라 N, M
2022.10.05
[백준 1966] 파이썬 - 프린터 큐
https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net # 조건 문서의 우선 순위에 따라 인쇄를 진행한다. 우선 순위는 동일할 수 있다. 우선 순위가 가장 높은 경우가 인쇄 차례일 때만 인쇄를 진행한다. 이 때 몇 번째로 인쇄되는지 궁금한 문서의 인덱스가 주어질 때 몇 번째 인쇄되는지 구하여라. # 접근 방법 문제에 나와있듯이 deque를 이용하여 앞에서의 출력, 뒤로 입력을 해주었다. 이 때, 처음 궁금했던 문서였음을 알리기 위하여 인덱스를 저장해주고,..
2022.09.16
[백준 11866] 파이썬 - 요세푸스 문제 0
https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net # 조건 1번부터 N번까지의 사람이 원을 이루며 앉아있고 양의 정수 K가 주어진다. K번째 사람을 제거하며 N명 모두가 제거 될 때까지 반복 제거되는 순서를 (N, K) - 요세푸스 순열이라고 한다. # 접근 방법 큐의 성질을 이용하여 '줄 세우기와 같이' 앞에서 빼주고 K번째가 아니라면 다시 APPEND해준다. 출력 모양이 좀 이상해서 좀 당황했지만 자료구조를 떠올린다면, 어려운 문제는 아니였다고 생각한다. N, K = map(int, input().split()) arr = [..
2022.09.15