이분탐색
-
[boj] 14003,11722 가장 긴 증가 부분 수열 (feat. bisect)알고리즘 2021. 1. 17. 23:30
오늘은 가장 긴 증가/감소 부분수열 시리즈를 쭉 풀어보았다. 1. 11722번 www.acmicpc.net/problem/11722 11722번: 가장 긴 감소하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10} www.acmicpc.net [접근법 1] 나는 처음에는 좀 무식하게 LCS로 접근했다. def solution(X,Y): n=len(X) m=len(Y) T=[[0 for j in range(m+1)] for i in range(n+1)] for i in range(1,n+1): for..
-
[kakao 2019 internship]징검다리 건너기알고리즘 2021. 1. 12. 21:18
programmers.co.kr/learn/courses/30/lessons/64062 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr [실수 1] 처음에 가장 간단하게 생각했던건 징검다리를 sorted 하고 check하는 방법. 이건 시간 초과가 났다. list--> set 으로 바꾸는 것 자체가 O(n) 그걸 sorted 하는 것이 O(nlogn) 그 한줄로 이미 O(n^2logn)이 되버렸다.ㅎ def solution(stones, k): s=sorted(list(set(stones))) q=[] answer=0 for i in s: if not check(i,stones,k): answer=i break return..