본문 바로가기

Problem Solving/BOJ60

[Binary Search] 2805 나무 자르기 https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net #2023.01.06 import sys input=sys.stdin.readline n, m = map(int, input().split()) tree = list(map(int, input().split())) start = 0 end = max(tree) while start=cut: # 자르고 남은 나무 길이 더해줌 answer+=(i-cut) if .. 2023. 1. 6.
[BruteForce] 15686 치킨 배달 https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net # 2023.01.05 import sys input = sys.stdin.readline from itertools import combinations n, m = map(int, input().split()) city = [list(map(int, input().split())) for _ in range(n)] totalDist = 10**9 # 최종 치킨 거리 home.. 2023. 1. 5.
[Sweeping] 2170 선긋기 https://www.acmicpc.net/problem/2170 2170번: 선 긋기 첫째 줄에 선을 그은 횟수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 다음 N개의 줄에는 선을 그을 때 선택한 두 점의 위치 x, y(-1,000,000,000 ≤ x < y ≤ 1,000,000,000)가 주어진다. www.acmicpc.net # 2023.01.04 import sys input = sys.stdin.readline n = int(input()) xy = [list(map(int, input().split())) for _ in range(n)] xy.sort(key = lambda x: (x[0], x[1])) # x좌표, y좌표 오름차순 정렬 answer=[[xy[0][0], xy[0][.. 2023. 1. 4.
[DP] 12865 평범한 배낭 https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net # 2023.01.04 import sys input = sys.stdin.readline n, k = map(int, input().split()) # 물품의 수, 최대 무게 item=[list(map(int, input().split())) for _ in range(n)] dp=[[0]*(k+1) for _ in range(n.. 2023. 1. 4.