diff --git "a/Programmers - \352\263\240\353\223\235\354\240\220 Kit/[\352\267\270\353\246\254\353\224\224] \353\213\250\354\206\215\354\271\264\353\251\224\353\235\274/dain.py" "b/Programmers - \352\263\240\353\223\235\354\240\220 Kit/[\352\267\270\353\246\254\353\224\224] \353\213\250\354\206\215\354\271\264\353\251\224\353\235\274/dain.py" new file mode 100644 index 00000000..d9ce2dd7 --- /dev/null +++ "b/Programmers - \352\263\240\353\223\235\354\240\220 Kit/[\352\267\270\353\246\254\353\224\224] \353\213\250\354\206\215\354\271\264\353\251\224\353\235\274/dain.py" @@ -0,0 +1,12 @@ +from collections import deque + +def solution(routes): + answer = 0 + routes.sort(key=lambda x: (x[1], x[0])) + routes = deque(routes) + while routes: + answer += 1 + s, e = routes.popleft() + while routes and routes[0][0] <= e: + routes.popleft() + return answer diff --git "a/Programmers - \352\263\240\353\223\235\354\240\220 Kit/[\354\212\244\355\203\235-\355\201\220] \353\213\244\353\246\254\353\245\274 \354\247\200\353\202\230\353\212\224 \355\212\270\353\237\255/dain.py" "b/Programmers - \352\263\240\353\223\235\354\240\220 Kit/[\354\212\244\355\203\235-\355\201\220] \353\213\244\353\246\254\353\245\274 \354\247\200\353\202\230\353\212\224 \355\212\270\353\237\255/dain.py" new file mode 100644 index 00000000..19f06362 --- /dev/null +++ "b/Programmers - \352\263\240\353\223\235\354\240\220 Kit/[\354\212\244\355\203\235-\355\201\220] \353\213\244\353\246\254\353\245\274 \354\247\200\353\202\230\353\212\224 \355\212\270\353\237\255/dain.py" @@ -0,0 +1,17 @@ +from collections import deque + +def solution(bridge_length, weight, truck_weights): + bridge = deque([0 for _ in range(bridge_length)]) + truck_weights = list(reversed(truck_weights)) + current_weight = 0 + answer = 0 + while truck_weights: + current_weight -= bridge.popleft() + answer += 1 + if current_weight + truck_weights[-1] <= weight: + truck = truck_weights.pop() + else: + truck = 0 + current_weight += truck + bridge.append(truck) + return answer + bridge_length diff --git "a/Programmers - \352\263\240\353\223\235\354\240\220 Kit/[\354\212\244\355\203\235-\355\201\220] \354\243\274\354\213\235\352\260\200\352\262\251/dain.py" "b/Programmers - \352\263\240\353\223\235\354\240\220 Kit/[\354\212\244\355\203\235-\355\201\220] \354\243\274\354\213\235\352\260\200\352\262\251/dain.py" new file mode 100644 index 00000000..56c9e74c --- /dev/null +++ "b/Programmers - \352\263\240\353\223\235\354\240\220 Kit/[\354\212\244\355\203\235-\355\201\220] \354\243\274\354\213\235\352\260\200\352\262\251/dain.py" @@ -0,0 +1,14 @@ +def solution(prices): + answer = [0 for _ in range(len(prices))] + stack = [] + + for i, p in enumerate(prices): + while stack and stack[-1][0] > p: + pop_p, pop_i = stack.pop() + answer[pop_i] = i - pop_i + stack.append((p, i)) + + for p, i in stack: + answer[i] = len(prices) - 1 - i + + return answer diff --git "a/Programmers - \352\263\240\353\223\235\354\240\220 Kit/[\354\231\204\354\240\204\355\203\220\354\203\211] \354\240\204\353\240\245\353\247\235\354\235\204 \353\221\230\353\241\234 \353\202\230\353\210\204\352\270\260/dain.py" "b/Programmers - \352\263\240\353\223\235\354\240\220 Kit/[\354\231\204\354\240\204\355\203\220\354\203\211] \354\240\204\353\240\245\353\247\235\354\235\204 \353\221\230\353\241\234 \353\202\230\353\210\204\352\270\260/dain.py" new file mode 100644 index 00000000..c9715193 --- /dev/null +++ "b/Programmers - \352\263\240\353\223\235\354\240\220 Kit/[\354\231\204\354\240\204\355\203\220\354\203\211] \354\240\204\353\240\245\353\247\235\354\235\204 \353\221\230\353\241\234 \353\202\230\353\210\204\352\270\260/dain.py" @@ -0,0 +1,25 @@ +from collections import defaultdict + +def solution(n, wires): + answer = n + tree = defaultdict(list) + + for a, b in wires: + tree[a].append(b) + tree[b].append(a) + + for i in range(len(wires)): + visit = [False for _ in range(n + 1)] + a, b = wires[i] + + def dfs(cur): + count = 1 + visit[cur] = True + for next in tree[cur]: + if not visit[next] and (cur, next) not in [(a, b), (b, a)]: + count += dfs(next) + return count + + answer = min(answer, abs(dfs(a) - dfs(b))) + + return answer diff --git "a/Programmers - \352\263\240\353\223\235\354\240\220 Kit/[\354\231\204\354\240\204\355\203\220\354\203\211] \355\224\274\353\241\234\353\217\204/dain.py" "b/Programmers - \352\263\240\353\223\235\354\240\220 Kit/[\354\231\204\354\240\204\355\203\220\354\203\211] \355\224\274\353\241\234\353\217\204/dain.py" new file mode 100644 index 00000000..278302ed --- /dev/null +++ "b/Programmers - \352\263\240\353\223\235\354\240\220 Kit/[\354\231\204\354\240\204\355\203\220\354\203\211] \355\224\274\353\241\234\353\217\204/dain.py" @@ -0,0 +1,17 @@ +from itertools import permutations + +def solution(k, dungeons): + answer = 0 + index = [i for i in range(len(dungeons))] + orders = permutations(index) + for order in orders: + count = 0 + hp = k + for idx in order: + if hp >= dungeons[idx][0]: + hp -= dungeons[idx][1] + count += 1 + else: + break + answer = max(answer, count) + return answer