본문 바로가기

Problem Solving/BOJ60

[Greedy] 1931 회의실 배정 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net # 2023.01.04 import sys input = sys.stdin.readline n = int(input()) time = [list(map(int, input().split())) for _ in range(n)] time.sort(key=lambda x: (x[1], x[0])) # print(time) endtime = time[0][1] # 회의가 끝나는 시간 index=1 for i in range(1, n): if endtime 2023. 1. 4.
[DP] 1912 연속합 https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net # 2023.01.04 import sys input = sys.stdin.readline n = int(input()) number = list(map(int, input().split())) dp = [0]*(n) dp[0]=number[0] for i in range(1, n): dp[i]+=(max(dp[i-1], 0)+number[i]) print(max(dp)) dp table을 이용 dp[i]의.. 2023. 1. 4.
[Stack] 1874 스택 수열 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net import sys input = sys.stdin.readline n = int(input()) find = [] for i in range(n): find.append(int(input())) stack = [] # 임의의 스택 number = [i for i in range(1, n+1)] # 1~n까지의 수 .. 2023. 1. 3.
[Stack] 4949 균형잡힌 세상 https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다 www.acmicpc.net #2023.01.03 import sys input = sys.stdin.readline while(1): word = input().rstrip() if word=='.': break answer=0 stack=[] for i in word: if i=="(" or i=="[": stack.append(i) elif i==")": if len(stack)==0: answer.. 2023. 1. 3.