본문 바로가기

전체 글433

후위 표기식 2[백준 1935] - python import string def BOJ1935() : n = int(input()) quest = input() numbers = {} for i in string.ascii_uppercase[:n] : numbers[i] = float(input()) stack = [] ord = {'+': 1, '-': 1, '*': 2, '/': 2} for s in list(quest) : if s in ord : second = stack.pop() first = stack.pop() temp = 0 if s == '+' : temp = first + second elif s == '-' : temp = first - second elif s == '*': temp = first * second elif s =.. 2021. 12. 22.
다각형의 면적 [백준 2166] - python import sys import math input = sys.stdin.readline def BOJ2166() : N = int(input()) x_points = [] y_points = [] for _ in range(N) : x, y = map(int, input().split()) x_points.append(x) y_points.append(y) result = 0 for i in range(N) : if i == N-1 : result += x_points[i] * y_points[0] else : result += x_points[i] * y_points[i+1] for i in range(N): if i == N-1 : result -= x_points[0] * y_points[i] e.. 2021. 12. 21.
가장 긴 증가하는 부분 수열 4 [백준 14002] - python import sys from bisect import bisect_left input = sys.stdin.readline def BOJ14002(): N = int(input()) A = list(map(int, input().split())) dist = [-1000000001] index = [0] * (N + 1) for i in range(len(A)): num = A[i] if dist[-1] < num: dist.append(num) index[i] = len(dist) - 1 else: index[i] = bisect_left(dist, num) dist[index[i]] = num max_length = len(dist) - 1 print(max_length) answer = [] for.. 2021. 12. 20.
N번째 큰 수[백준 2075번] - python 정답코드 먼저 살펴보자 import sys, heapq def BOJ2075(): n = int(input()) array = list(map(int, sys.stdin.readline().split())) for _ in range(n-1) : for i in list(map(int, sys.stdin.readline().split())): if array[0] < i : heapq.heappop(array) heapq.heappush(array, i) print(array[0]) BOJ2075() 맨 처음에는 배열로 입력받지 않고 배열에 값을 하나씩 넣은다음에 전체를 정렬후 값을 출력했었다. 문제의 조건은 12mb이다. 메모리 초과로 바로 실패했다. 쉽사리 방법을 떠올리지 못했고 다른 분들의 블로그를.. 2021. 12. 19.
가장 긴 증가하는 부분 수열 3 import sys from bisect import bisect_left input = sys.stdin.readline def BOJ12738(): N = int(input()) A = list(map(int, input().split())) dist = [-1000000001] index = [0] * (N + 1) for i in range(len(A)): num = A[i] if dist[-1] < num: dist.append(num) else: index[i] = bisect_left(dist, num) dist[index[i]] = num max_length = len(dist) - 1 print(max_length) BOJ12738() 접근 방법 0. 거리 배열을 하나 두자 1. 거리 배.. 2021. 12. 18.
치킨 배달[백준 15686] - python 정답 코드 import sys from itertools import combinations def BOJ15686() : N, M = map(int, sys.stdin.readline().split()) graph = [] for _ in range(N) : graph.append(list(map(int, sys.stdin.readline().split()))) chiken_store_list = [] house_list = [] for x in range(N) : for y in range(N) : if graph[x][y] == 1 : house_list.append([x+1, y+1]) elif graph[x][y] == 2 : chiken_store_list.append([x+1, y+1]) c.. 2021. 12. 17.