백준 2

백준 14003(가장 긴 증가하는 부분 수열 5)

www.acmicpc.net/problem/14003 14003번: 가장 긴 증가하는 부분 수열 5 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (-1,000,000,000 ≤ Ai ≤ 1,000,000,000) www.acmicpc.net 이번 문제는 유명한 LIS(Longest Increasing Subsequence)유형의 문제이다. 보통 이러한 문제는 브루트 포스(완전탐색)으로 풀면 시간초과가 나도록 조건이 주어지는 것 같다.(알고리즘 대회나 코딩 테스트에서 항상 그랬던 것으로 기억된다.) 나는 이 문제를 다이나믹 프로그래밍을 배울 때 처음 풀었던 것 같다. 그런데 다이나믹 프로그래밍으로 푼다고 해도 O(N^2..

알고리즘문제 2021.02.16

백준 1167(트리의 지름)

https://www.acmicpc.net/problem/1967 1967번: 트리의 지름 파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연 www.acmicpc.net 트리의 지름이란, 트리에서 임의의 두 점 사이의 거리 중 가장 긴 것을 말한다. 처음에는 모든 노드에 대해서 루트로 잡은 노드와 가장 먼 노드와의 길이를 dfs를 통해 구해보았다. 당연하게도 시간초과가 발생하였다. 한번의 DFS 로 풀 수 있는 방법이 있을까 고민해보았다. 생각의 흐름. 1. 내가 현재 루트로 잡은 노드가 트리의 지름에 포함되어있는 경우 -> 이 경우 루트 노드..

알고리즘문제 2021.01.30