전체 글 108

[Boj/백준] 21773 Python

문제출처: https://www.acmicpc.net/problem/21773 21773번: 가희와 프로세스 1 1초일 때 부터 4초일 때 상황을 그림으로 나타내면 아래와 같습니다. 아래 그림에서 주황색은 특정 시점에 스케쥴러가 선택한 프로세스를 의미합니다. www.acmicpc.net 1. 문제 접근 방식 우선순위가 prio => id => time순이므로 인풋을 받아서 split으로 각각 변수를 할당해주고 prio에는 최대 힙 id에는 최소 힙을 적용해준다. 2. 내가 푼 코드 import sys import heapq T, n = map(int,sys.stdin.readline().split()) heap=[] for _ in range(n): id, time, prio = map(int,sys.s..

[Boj문제풀이] 2021.09.18

[Boj/백준] 22252 Python

문제 출처: https://www.acmicpc.net/problem/22252 22252번: 정보 상인 호석 암흑가의 권력은 주먹과 정보에서 나온다. 주먹은 한 명에게 강하고, 정보는 세계를 가지고 놀 수 있기 때문에 호석이는 세상 모든 정보를 모으는 "정보 상인"이 되고 싶다. 정보 상인은 정보를 www.acmicpc.net 1. 문제 접근 방식 name을 보고 해시를 사용하겠다고 생각했고, 루프를 돌면서 name이 존재한다면 heappush를 해주고 name이 없다면 추가를 해줬다. 2. 내가 푼 코드 import sys import heapq case = int(sys.stdin.readline()) hash = {} sum = 0 def minus(x): return -1*x for _ in r..

[Boj문제풀이] 2021.09.17

[Boj/백준] 13975 Python

문제 출처: https://www.acmicpc.net/problem/13975 13975번: 파일 합치기 3 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T개의 테스트 데이터로 이루어져 있는데, T는 입력의 맨 첫 줄에 주어진다.각 테스트 데이터는 두 개의 행으로 주어지는데, www.acmicpc.net 1. 문제 접근 방식 여느 힙 문제처럼 계속 두개씩 heappop후에 더한 것을 heappush하면 될 것 같았다. 2. 내가 푼 코드 import sys import heapq case = int(sys.stdin.readline()) for i in range(case): page = int(sys.stdin.readline()) heap=list(map(int,sys.stdi..

[Boj문제풀이] 2021.09.16

[Boj/백준] 19598 Python

문제출처: https://www.acmicpc.net/problem/19598 19598번: 최소 회의실 개수 서준이는 아빠로부터 N개의 회의를 모두 진행할 수 있는 최소 회의실 개수를 구하라는 미션을 받았다. 각 회의는 시작 시간과 끝나는 시간이 주어지고 한 회의실에서 동시에 두 개 이상의 회의 www.acmicpc.net 1. 문제 접근 방식 엄청 많이 헤맸다... 먼저 배열을 선언하고 start를 기준으로 정렬한다. 힙을 선언한 후에 배열을 순회하면서 heap[0]보다 start값이 크거나 같으면 heappop을 해주고(회의실 그대로 사용) 아니면 count값을 추가(회의실 한 개 더 선언)해준다. 2. 내가 푼 코드 import sys import heapq case = int(sys.stdin...

[Boj문제풀이] 2021.09.15

[Boj/백준] 19638 Python

문제출처: https://www.acmicpc.net/problem/19638 19638번: 센티와 마법의 뿅망치 마법의 뿅망치를 센티의 전략대로 이용하여 거인의 나라의 모든 거인이 센티보다 키가 작도록 할 수 있는 경우, 첫 번째 줄에 YES를 출력하고, 두 번째 줄에 마법의 뿅망치를 최소로 사용한 횟수 www.acmicpc.net 1. 문제 접근 방식 힙에 삽입을 한다. 단, 최대힙을 구하는 문제임으로 음수를 취한 후에 삽입한다. heappop을 하고 만약 h보다 크다면 다시 넣고 break 만약 1이라면 다시 삽입 h보다 크다면 //2 연산을 해주고 삽입을 한다. 2. 내가 푼 코드 import sys import heapq n, h, t = map(int,sys.stdin.readline().sp..

[Boj문제풀이] 2021.09.14

[Boj/백준] 15903 Python

문제출처: https://www.acmicpc.net/problem/15903 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net 1. 문제 접근 방식 힙에 삽입하고 m번 동안 heappop 2회 한 후에 둘을 더한 값을 heappush 2회 해준다. 2. 내가 푼 코드 import sys import heapq n, m = map(int,sys.stdin.readline().split()) heap = [] arr = list(map(int,sys.stdin.readline(..

[Boj문제풀이] 2021.09.14

[Boj/백준] 1927 11279 11286 Python

문제 출처: https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net https://www.acmicpc..

[Boj문제풀이] 2021.09.13

[Boj/백준] 5464 Python

문제 출처: https://www.acmicpc.net/problem/5464 5464번: 주차장 시내 주차장은 1부터 N까지 번호가 매겨진 N개의 주차 공간을 가지고 있다. 이 주차장은 매일 아침 모든 주차 공간이 비어 있는 상태에서 영업을 시작하며, 하룻동안 다음과 같은 방식으로 운영 www.acmicpc.net 1. 문제 접근 방식 들어오는 차량의 값이 양수이면 use라는 리스트에 하나씩 넣고 만약에 자리가 없다면 대기 덱에 삽입한다. 들어오는 차량의 값이 음수라면 해당 use 리스트 값을 0으로 초기화 시킨다. 만약 대기 덱에 원소가 존재할 때에는 use리스트에 해당 덱 원소를 삽입한다. 2. 내가 푼 코드 import sys from collections import deque n, m = ma..

[Boj문제풀이] 2021.09.11

[Boj/백준] 18115 Python

문제출처: https://www.acmicpc.net/problem/18115 18115번: 카드 놓기 수현이는 카드 기술을 연습하고 있다. 수현이의 손에 들린 카드를 하나씩 내려놓아 바닥에 쌓으려고 한다. 수현이가 쓸 수 있는 기술은 다음 3가지다. 제일 위의 카드 1장을 바닥에 내려놓는다. www.acmicpc.net 1. 문제 접근 방식 먼저 입력값을 reverse한다. 그리고 덱을 순환하면서 1이면 결과덱의 앞에 삽입하고 2면 결과덱의 두번째에 삽입하고 3이면 결과덱의 마지막에 삽입하는 것을 반복한다. 2. 내가 푼 코드 import sys from collections import deque case = int(sys.stdin.readline()) queue = deque(map(int,sys..

[Boj문제풀이] 2021.09.10

[Boj/백준] 13417 Python

문제출처: https://www.acmicpc.net/problem/13417 13417번: 카드 문자열 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 T가 주어진다. 각각의 테스트 케이스의 첫째 줄에 처 www.acmicpc.net 1. 문제 접근 방식 arr 리스트에 처음 문자를 삽입하고 나머지 문자를 arr리스트의 원소와 비교하면서 0번째에 insert하거나 마지막에 붙이거나 한다. 2. 내가 푼 코드 import sys case = int(sys.stdin.readline()) for _ in range(case): x = int(sys.stdin.readline()) queue= list(map(str,sy..

[Boj문제풀이] 2021.09.08