Heeto
article thumbnail
[ 백준 / 골드2 / 파이썬 Python ] 1365번 - 꼬인 전깃줄

링크 : https://www.acmicpc.net/problem/1365 1365번: 꼬인 전깃줄 첫 줄에 전봇대의 개수 N(1 ≤ N ≤ 100,000)이 주어지고, 이어서 N보다 작거나 같은 자연수가 N개 주어진다. i번째 줄에 입력되는 자연수는 길 왼쪽에 i번째 전봇대와 연결된 길 오른편의 전봇대가 www.acmicpc.net 코드 import bisect n = int(input()) arr = list(map(int,input().split())) stack = [] for x in arr: if not stack or x > stack[-1]: stack.append(x) continue loc = bisect.bisect_left(stack,x) stack[loc] = x print(n-l..

article thumbnail
[ 백준 ][ 골드5 ] 2565번 - 전깃줄 ( PYTHON 파이썬 )

링크 : https://www.acmicpc.net/problem/2565 2565번: 전깃줄 첫째 줄에는 두 전봇대 사이의 전깃줄의 개수가 주어진다. 전깃줄의 개수는 100 이하의 자연수이다. 둘째 줄부터 한 줄에 하나씩 전깃줄이 A전봇대와 연결되는 위치의 번호와 B전봇대와 연결되는 www.acmicpc.net 코드 import bisect def LIS(arr): res = [arr[0]] for x in arr[1:]: if x < res[-1]: res[bisect.bisect_left(res,x)] = x continue res.append(x) return len(res) n = int(input()) line = sorted([list(map(int,input().split())) for _..

article thumbnail
[ 백준 ][ 골드4 ] 14002번 - 가장 긴 증가하는 부분 수열 4 ( 파이썬 )

링크 : https://www.acmicpc.net/problem/14002 14002번: 가장 긴 증가하는 부분 수열 4 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 문제 코드 n = int(input()) arr = list(map(int,input().split())) dp = [1] * n for i in range(n): for j in range(i): if arr[i] > arr[j]: dp[i] = max(dp[i],dp[j]+1) a = max(dp) pr..