๋ฌธ์ ๋ฐฑ์ค 2805. ๋๋ฌด ์๋ฅด๊ธฐ https://www.acmicpc.net/problem/2805 ์ฝ๋n, m = map(int, input().split())forest = list(map(int, input().split()))s = 1e = max(forest)while s = mid: wood += tree - mid # ์
? if wood >= m: s = mid + 1 # ๋ค์ด? else: e = mid - 1print(e)์์ ํ์์ผ๋ก ๋ชจ๋ H ๊ฐ์ ๋ค ํ์ธํ๊ธฐ์ ์๊ฐ ์ด๊ณผ๊ฐ ๋๋ฏ๋ก, ์ด๋ถ ํ์์ ์ฌ์ฉํด์ผ ํ๋ค.H(์ ๋จ๊ธฐ ๋์ด)๋ฅผ ์ด๋ถ ํ์ํ๋ฉฐ, ํ์ฌ ๋์ด๋ก ๋๋ฌด๋ฅผ ์๋ฅด๋ฉด m๋งํผ ์ป์ ์ ์๋์ง๋ฅผ ํ๋จํ๋ค. ํ์ดn, m =..
๐ก ์ฝ๋ฉํ ์คํธ
๋ฌธ์ ๋ฐฑ์ค 15654. N๊ณผ M(5) https://www.acmicpc.net/problem/15654 ์ฝ๋n, m = map(int, input().split())number = list(map(int, input().split()))number.sort()arr = []def recur(idx): if len(arr) == m: print(*arr) return for i in number: if i not in arr: arr.append(i) recur(idx+1) arr.pop()recur(1) ํ์ดn, m = map(int, input().split()) # n๊ฐ์ ์ซ์ ์ค m๊ฐ ๊ณ ๋ฅด..
๋ฌธ์ ๋ฐฑ์ค 14501.ํด์ฌ https://www.acmicpc.net/problem/14501 ์ฝ๋ (๋ฐํ
์
DP)๋ฐํ
์
๋ฐฉ์์์๋ ๋ค์์๋ถํฐ ์ ๊ทผํ๋ฉฐ ์ต์ ์ ์๋ด ์ค์ผ์ค์ ๊ฒฐ์ ํ๋ค.N = int(input())table = [list(map(int,input().split())) for _ in range(N)]dp = [0 for _ in range(N+1)]for i in range(N)[::-1]: if i + table[i][0] > N: dp[i] = dp[i+1] else: # i๋ฒ์งธ ๋ ๋ถํฐ ์ป์ ์ ์๋ ์ต๋ ์ด์ต dp[i] = max(dp[i + table[i][0]] + table[i][1], dp[i + 1])print(dp[0]) ํ์ดfor ..
๋ฌธ์ ํ๋ก๊ทธ๋๋จธ์ค N-Queenhttps://school.programmers.co.kr/learn/courses/30/lessons/12952' ํ๋ก๊ทธ๋๋จธ์ค์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์
๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์
๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.programmers.co.kr ์ฝ๋def solution(n): global answer v1 = [0 for _ in range(n)] # ์ด v2 = [0 for _ in range(n * 2)] # ๋๊ฐ์ ์๋ฐฉ v3 = [0 for _ in range(n * 2)] # ๋๊ฐ์ ํ๋ฐฉ answer = 0 def dfs(row): global answ..
๋ฌธ์ ํ๋ก๊ทธ๋๋จธ์ค ์์์ฐพ๊ธฐhttps://school.programmers.co.kr/learn/courses/30/lessons/42839 ํ๋ก๊ทธ๋๋จธ์ค์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์
๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์
๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.programmers.co.kr ์ฝ๋import itertoolsdef sosu(num): if num == 0 or num == 1: return False for i in range(2, int(num ** 0.5) + 1): if num % i == 0: return False return Truedef solution(n): answe..
๋ฌธ์ ๋ฐฑ์ค ๋ด์ค ์ ํ๊ธฐ https://www.acmicpc.net/problem/1135 ์ฝ๋n = int(input())parent_list = list(map(int, input().split()))child_list = [list() for _ in range(n)]for child in range(1, n) : parent = parent_list[child] child_list[parent].append(child)def dfs(node) : if not child_list[node] : return 0 result = list() for child in child_list[node] : result.append(dfs(child)) result.sort( reverse =..
๋ฌธ์ ๋ฐฑ์ค 1927 ์ต์ ํ https://www.acmicpc.net/problem/1927๋ฐฑ์ค 11279 ์ต๋ ํ https://www.acmicpc.net/problem/11279 ์ต์ ํ ์ฒ์ ์ฝ๋ (์๊ฐ์ด๊ณผ)๋ฐฐ์ด์์ min()์ ์ด์ฉํ์ฌ ์ต์๊ฐ์ ์ฐพ์๋ค.n = int(input())x = []for _ in range(n): num = int(input()) if num == 0: if x: print(min(x)) x.remove(min(x)) else: print(0) else: x.append(num) ์ต์ ํ ์ฝ๋import sysimport heapqn = int(input()..
๋ฌธ์ https://www.acmicpc.net/problem/14888 ์ฝ๋n = int(input())num = list(map(int, input().split()))operation = list(map(int, input().split())) # +, -, *, /maxi = -1e9mini = 1e9def dfs(idx, result, plus, minus, multiply, divide): global maxi, mini if idx == n: maxi = max(result, maxi) mini = min(result, mini) return if plus > 0: dfs(idx + 1, result + num[idx], pl..
๋ฌธ์ https://www.acmicpc.net/problem/1012 ์ฝ๋from collections import dequeT = int(input())for _ in range(T): n, m, k = map(int, input().split()) # ๊ฐ๋ก, ์ธ๋ก, ๋ฐฐ์ถ๊ฐ์ field = [[0 for _ in range(n)] for _ in range(m)] visit = [[False for _ in range(n)] for _ in range(m)] answer = 0 # ๋ฐฐ์ถ ์ง๋ ๊ทธ๋ฆฌ๊ธฐ for l in range(k): x, y = map(int, input().split()) field[y][x] = 1 for i in..

๋ฌธ์ ๋ฆฟ์ฝ๋ 1338. Reduce Array Size To The Halfhttps://leetcode.com/problems/reduce-array-size-to-the-half/description/ ์ฝ๋class Solution(object): def minSetSize(self, arr): answer = 0 count_num = {} for num in arr: if num not in count_num.keys(): count_num[num] = 1 else: count_num[num] += 1 values = sorted(list(..

๋ฌธ์ ๋ฆฟ์ฝ๋ 1845. Seat Reservation Managerhttps://leetcode.com/problems/seat-reservation-manager/ ์ฝ๋import heapqclass SeatManager: def __init__(self, n): self.can_reserve = list(range(1, n + 1)) heapq.heapify(self.can_reserve) def reserve(self): return heapq.heappop(self.can_reserve) def unreserve(self, seatNumber): heapq.heappush(self.can_reserve, seatNumber)..

๋ฌธ์ ๋ฆฟ์ฝ๋ 921. Minimum Add to Make Parentheses Valishttps://leetcode.com/problems/minimum-add-to-make-parentheses-valid/ ์ฝ๋class Solution(object): def minAddToMakeValid(self, s): s = deque(s) stack = [] item = s.popleft() stack.append(item) while s: item = s.popleft() if not stack: stack.append(item) else: ..