목록baekjoon (solved.ac)/class 3 Solve (43)
Hikenny25
https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net - 최대 힙 import sys input = sys.stdin.readline from heapq import heappop, heappush heap = [] n = int(input()) for _ in range(n): cmd = -(int(input())) if cmd: heappush(heap, cmd) else: if heap: print(-heappop(heap)..
https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net - 최소 힙 import sys input = sys.stdin.readline class minHeap: def __init__(self): self.heap = [] def insert(self, n): self.heap.append(n) index = len(self.heap)-1 while index>0: p_index = (index - 1) // 2 if self.h..
https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net - DFS import sys sys.setrecursionlimit(int(1e9)) input = sys.stdin.readline def dfs(dy, dx): if dy = m: return if matrix[dy][dx]: matrix[dy][dx] = 0 dfs(dy+1,dx) dfs(dy-1,dx) dfs(dy,dx+1) dfs(dy,dx-1) else: return t = int(input())..
https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net - Greedy import sys input = sys.stdin.readline n = int(input()) meetTime = list() for _ in range(n): meetTime.append(list(map(int, input().split()))) meetTime.sort(key=lambda x:(x[1],x[0])) lastTime, cnt = meetTime[0][1], 1 for i in range(1, n): if lastTime
https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net - 수학 - 구현 import sys input = sys.stdin.readline m = input()[:-1] n = '' a = '' flag = 1 for i in m: if i == '-' or i == '+': n += str(int(a)) a = '' if i == '-': flag = -1 if flag == 1: n += '+' else: n += '-' else: a +=..
https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net - 구현 (조합론) import sys input = sys.stdin.readline t = int(input()) for _ in range(t): n = int(input()) d = dict() for _ in range(n): k = input().split() try: d[k[1]] += 1 e..
https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net - Dynamic Programming import sys input = sys.stdin.readline t = int(input()) a = list() for _ in range(t): a.append(int(input())) n = max(a) dp = [1] * (n+3) for i in range(4, n+1): dp[i] = dp[i-2] + dp[i-3] for i in a: print(..
https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net - 메모이제이션 (구현) import sys input = sys.stdin.readline n, m = map(int, input().split()) nl = [0] + list(map(int, input().split())) sl = [0] * (n+1) for i in range(1, n+1): sl[i] = sl[i-1] + nl[i] for _ in range(m)..
https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net - Dynamic Programming import sys input = sys.stdin.readline n = int(input()) dp = [0] * (n+2) dp[1] = 1 dp[2] = 3 for i in range(3, n+1): dp[i] = dp[i-1] + 2 * dp[i-2] print(dp[n] % 10007) 타일링 문제 1에서 언급했던 경우의 수에, n-2 길이의 상자에 (가로 2, 세로 2) 정사..
https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net - Dynamic Programming import sys input = sys.stdin.readline n = int(input()) dp = [0] * (n+2) dp[1] = 1 dp[2] = 2 for i in range(3, n+1): dp[i] = dp[i-1] + dp[i-2] print(dp[n] % 10007) 길이가 n인 상자를 채우는 방법은 길이가 n-1인 상자에 (세로 2, 가로 1) 블럭 하나..