파이썬 백준 10773 제로 import sys input = sys.stdin.readline stack = [] def stk(t) : if t == 0 : del stack[-1] else : stack.append(t) n = int(input()) for i in range(n) : x = int(input()) stk(x) print(sum(stack)) 요구사항만 다르지 10828 스택과 같은 문제이다. 하라는대로 만들면 된다. Week 01 ~ 04 : 알고리즘 문제 풀이 2021.11.13
파이썬 백준 2504 괄호의 값 before = list(input()) origin = ['((', '([', '[(', '[[', '))', ')]', '])', ']]', '()', '(]', '[)', '[]', ')(', ')[', '](', ']['] translation = [[2, 1], [2, 1], [3, 1], [3, 1], [2, -1], [3, -1], [2, -1], [3, -1], 2, 0, 0, 3, '+', '+', '+', '+'] trl = [] for i in range(len(before) - 1) : for j in range(16) : if before[i] + before[i+1] == origin[j] : trl.append(translation[j]) # (()[[]])([]) -> '2*.. Week 01 ~ 04 : 알고리즘 문제 풀이 2021.11.13
파이썬 백준 10828 스택 import sys input = sys.stdin.readline stack = [] def stk(inp) : if inp[0] == 'push' : stack.append(int(inp[1])) elif inp[0] == 'pop' : if stack == [] : print(-1) else : print(stack[-1]) del stack[-1] elif inp[0] == 'size' : print(len(stack)) elif inp[0] == 'empty' : if stack == [] : print(1) else : print(0) elif inp[0] == 'top' : if stack == [] : print(-1) else : print(stack[-1]) n = int(input().. Week 01 ~ 04 : 알고리즘 문제 풀이 2021.11.12
파이썬 백준 2261 가장 가까운 두 점 import sys input = sys.stdin.readline l = [] n = int(input()) for i in range(n) : l.append(list(map(int, input().split()))) l.sort() def length(p, q) : return (p[0] - q[0]) ** 2 + (p[1] - q[1]) ** 2 def DAC(start, end) : if end == start + 1 : return length(l[start], l[end]) center = (start + end) // 2 minl = min(DAC(start, center), DAC(center, end)) rng = [] for i in range(start, end + 1) : if (.. Week 01 ~ 04 : 알고리즘 문제 풀이 2021.11.12
파이썬 백준 10830 행렬 제곱 n, b = map(int, input().split()) A = [] for i in range(n) : A.append(list(map(int, input().split()))) I = [[0 for i in range(n)] for j in range(n)] for i in range(n) : I[i][i] = 1 def mult(A, B) : C = [[0 for i in range(n)] for j in range(n)] for i in range(n) : for j in range(n) : sum = 0 for x in range(n) : sum = sum + A[i][x] * B[x][j] C[i][j] = sum % 1000 return C powerlist = [0 for i in ran.. Week 01 ~ 04 : 알고리즘 문제 풀이 2021.11.12
파이썬 백준 1629 곱셈 a, b, c = map(int, input().split()) bilist = [0 for i in range(31)] for i in range(30, -1, -1) : bilist[i] = b // pow(2, i) b = b - bilist[i] * pow(2, i) powerlist = [0 for i in range(31)] powerlist[0] = a % c for i in range(1, 31) : powerlist[i] = pow(powerlist[i-1], 2) % c remain = 1 for i in range(31) : if bilist[i] == 1 : remain = (remain * powerlist[i]) % c print(remain) 2^32 이하의 모든 자연수는 32.. Week 01 ~ 04 : 알고리즘 문제 풀이 2021.11.12
파이썬 백준 2630 색종이 만들기 n = int(input()) square = [] for i in range(n) : square.append(list(map(int, input().split()))) def detect(sq, size) : for i in range(size) : for j in range(size) : if sq[i][j] != sq[0][0] : return False return True count = [0, 0] def DFS(sq, size) : if detect(sq, size) : count[sq[0][0]] = count[sq[0][0]] + 1 else : DFS([sq[i][:size//2] for i in range(size//2)], size//2) DFS([sq[i][size//2:] for.. Week 01 ~ 04 : 알고리즘 문제 풀이 2021.11.12
파이썬 백준 8983 사냥꾼 import sys input = sys.stdin.readline from bisect import bisect_left m, n, l = map(int, input().split()) line = list(map(int, input().split())) line.sort() count = 0 for i in range(n) : x, y = map(int, input().split()) if not y > l : if x Week 01 ~ 04 : 알고리즘 문제 풀이 2021.11.12
파이썬 백준 2470 두 용액 import sys sys.setrecursionlimit(10**8) input = sys.stdin.readline n = int(input()) L = list(map(int, input().split())) L.sort() al = 0 ar = n- 1 amin = abs(L[al] + L[ar]) def Bsearch(l, pl, pr) : global amin, al, ar if pl >= pr : return [amin, al, ar] sum = l[pl] + l[pr] if abs(sum) 0 : return Bsearch(l, pl, p.. Week 01 ~ 04 : 알고리즘 문제 풀이 2021.11.11
파이썬 백준 2805 나무 자르기 n, m = map(int, input().split()) T = list(map(int, input().split())) def Bsearch(list, goal, lower, upper) : if lower > upper : return upper sum = 0 center = (lower + upper) // 2 for i in list : if i > center : sum = sum + i - center if sum == goal : return center if sum > goal : return Bsearch(list, goal, center + 1, upper) else : return Bsearch(list, goal, lower, center -1) print(Bsearch(T, m,.. Week 01 ~ 04 : 알고리즘 문제 풀이 2021.11.11