백트래킹

CS/알고리즘 문제 풀이

[백준] 1759 - 암호 만들기 [Python(파이썬)]

문제 https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 풀이 백트래킹을 이용하거나 combination 함수를 사용하는 두 가지 방법으로 풀 수 있다. 문제 자체의 난이도는 그렇게 높지 않았지만, "최소 한 개의 모음과 최소 두 개의 자음으로 구성되어있다."라는 제약 조건에 대한 처리를 해주지 않으면 테스트케이스는 통과하더라도 틀릴 수 있는 문제였다. 나는 두 가지 방법으로 다 풀어봤는데, 속도적인 측면에선 combination 함수를 사용하는 편이 ..

CS/알고리즘 문제 풀이

[백준] 16637 - 괄호 추가하기 [Python(파이썬)]

문제 www.acmicpc.net/problem/16637 16637번: 괄호 추가하기 첫째 줄에 수식의 길이 N(1 ≤ N ≤ 19)가 주어진다. 둘째 줄에는 수식이 주어진다. 수식에 포함된 정수는 모두 0보다 크거나 같고, 9보다 작거나 같다. 문자열은 정수로 시작하고, 연산자와 정수가 www.acmicpc.net 풀이 기본적으로 브루트포스에 속하지만, 백트래킹을 적용하여 풀 수 있는 문제였다. 이 문제는 다음과 같은 부분 문제로 나눠볼 수 있다. 1) 현재 상태에서 괄호를 넣는 경우와 안 넣는 경우를 모두 검사한다. 2) 괄호를 취한 식을 계산한다. 1)부터 살펴보자. 여기선 이 문제의 제약 조건 중 "중첩된 괄호는 사용할 수 없다."에 주목해야 한다. 이 말은 괄호의 위치가 고정되어 있다는 뜻이다..

코택
'백트래킹' 태그의 글 목록