본문 바로가기
728x90

알고리즘124

부분 문자열 [백준 16916] - python import sys input = sys.stdin.readline def BOJ16916() : # 접두사와 접미사 개념 def make_table(pattern) : table = [0 for _ in range(len(pattern))] j = 0 for i in range(1, len(pattern)) : while j > 0 and pattern[i] != pattern[j] : j = table[j-1] if pattern[i] == pattern[j] : j += 1 table[i] = j return table def KMP(parent, pattern, table) : j = 0 for i in range(len(parent)) : while j > 0 and parent[i] != pa.. 2022. 3. 30.
부분합 [백준 1806] - python import sys input = sys.stdin.readline def BOJ1806() : N, S = map(int, input().split()) l = list(map(int, input().split())) f_p = 1 s_p = 0 result = 1e10 s = [0, l[0]] for i in range(1, len(l)) : s.append(l[i] + s[i]) if S > s[-1]: print(0) return while f_p 2022. 3. 28.
빙산 [백준 1062] - python from dataclasses import replace from itertools import combinations import sys input = sys.stdin.readline def BOJ1062() : def replace_antatica(words) : words = words.replace('a', '') words = words.replace('n', '') words = words.replace('t', '') words = words.replace('i', '') words = words.replace('c', '') return words N, K = map(int, input().split()) words = [] for _ in range(N) : words.append(in.. 2022. 3. 27.
빗물 [백준 14719] - python import sys input = sys.stdin.readline def BOJ14719() : H, W = map(int, input().split()) l = list(map(int, input().split())) graph = [[0 for _ in range(W)] for _ in range(H)] for i in range(H) : for j in range(W) : if l[j] == H - i : graph[i][j] = 1 l[j] -= 1 for i in range(H) : start = -1 end = -1 for j in range(W) : if graph[i][j] == 1 : if start != -1 : end = j for k in range(start + 1, end) :.. 2022. 3. 26.
괄호의 값 [백준 2504] - python import sys input = sys.stdin.readline def BOJ2504() : def is_good(args) : stack = [] flag = True for arg in args : if arg == '(' : stack.append('(') if arg == ')' : if not stack: flag = False break if stack[-1] != '(' : flag = False break stack.pop() if arg == '[' : stack.append('[') if arg == ']' : if not stack : flag = False break if stack[-1] != '[': flag = False break stack.pop() if len(stac.. 2022. 3. 25.
별자리 만들기 [백준 4386] - python import math import heapq import sys input = sys.stdin.readline def BOJ4386() : def get_dist(x1, y1, x2, y2) : return math.sqrt(math.pow(x1-x2, 2) + math.pow(y1-y2, 2)) n = int(input()) stars = [] for _ in range(n) : stars.append(list(map(float, input().split()))) graph = [[] for _ in range(n+1)] visited = [False for _ in range(n+1)] for i in range(len(stars)) : for j in range(i+1, len(stars)) : .. 2022. 3. 24.