Stack

문제 링크 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\) 인 음이 있다고 생각을 해 보자. 이 때 연주하는 경우의 수는 크게 두가지로 나눠서 생각을 해볼 수 있다. ..
Ohnim · 오님
'Stack' 태그의 글 목록