2016/11/08

문제 링크 https://www.acmicpc.net/problem/9935 문제 요약 문자열 \(A\), \(B\)가 주어진다. \(B\)는 \(A\)안에서 연쇄적으로 사라질 때 최종적으로 남은 문자열이 무엇인지 출력하는 문제다. 문제 풀이 문자열이 연쇄적으로 사라진다는 점에 착안해서 \(A\)문자열을 앞에서부터 한 글자씩 답 문자열에 추가해 가면서 끝에서 \(B\)와 매칭이 되는가를 매번 확인해 준다. 매번 확인하면 시간내에 들어올까 하는 의문이 생길수도 있다. 하지만 \(A\)의 길이가 \(10^6\)데 비해 \(B\)의 길이는 최대 \(36\)밖에 안되기 때문에 매우 빠른속도에 통과하는것을 확인할 수 있다. 시간복잡도는 \(O(|A||B|)\)이다. 소스 코드 #include #include in..
여기를 클릭해 주세요. 문제 링크 https://www.acmicpc.net/problem/2841 문제 요약 기타는 총 6개의 줄로 이루어져 있으며 높은 플랫을 누르면서 낮은 플랫을 동시에 누르고 연주가 가능하지만 낮은 플랫을 눌러 연주를 해야하는데 이 때 높은 플랫이 눌려 있으면 안된다. 외계인이 연주할 곡의 음 순서가 들어올 때 손을 움직이는 횟수를 최소화 하고 싶다 문제 풀이 외계인이 각각의 손을 움직여야 할지 말아야 할지 모든 경우를 탐색해 보는것은 불가능하다. 하지만 잘 생각해 본다면 그 순간에 선택을 해야할지 그리디하게 결정할 수 있다. 우선 한개의 줄에 \(x \lt y\lt z\) 인 음이 있다고 생각을 해 보자. 이 때 연주하는 경우의 수는 크게 두가지로 나눠서 생각을 해볼 수 있다. ..
여기를 클릭해 주세요. 문제 링크 https://www.acmicpc.net/problem/6135 문제 요약 \(N\)개의 정점으로 이루어진 가중치가 있는 방향 그래프가 주어 진다. 그 뒤 \(Q\)개의 쿼리가 주어지는데 각각의 쿼리마다 두 개의 수 \(u\), \(v\)가 주어진다. 각 쿼리에 대해서 구해야 하는 값은 아래와 같다. \(u\), \(v\)로 가는 경로를 하나 선택했을 때 그 경로에 있는 엣지들의 무게들 중 가장 무거운 값이 있다고 하자. 이 값을 최소화 시키는 경로를 하나 찾는게 문제다. 실제 경로는 찾을 필요가 없고 최대중에 최소의 값만 찾으면 되기 때문에 쉽게 해결할 수 있다. 문제 풀이 \(D[u][v]\) = \(u\)에서 \(v\)로 가는 경로 중 만나는 엣지의 무게의 최대의..
Ohnim · 오님
'2016/11/08 글 목록