목록백트래킹 (2)
이우의 개발일지

코드트리 Carry 피하기 문제 https://www.codetree.ai/problems/escaping-carry/description n개의 숫자가 주어지고, 그 숫자를 적절하게 골라 더했을 때 carry가 전혀 발생하지 않는 최대로 고를 수 있는 숫자의 수를 계산하는 프로그램을 작성해보세요.여기서 carry란, 수와 수를 더했을 때, 10의 자리를 넘기는 것을 말합니다. 예를 들어 3과 6을 더하면 9가 되고 자리수가 넘어가지않아 carry가 발생하지 않지만, 5와 7은 더하면 12가 되므로 carry가 발생합니다. 또, 81과 72를 더하면 일의 자리를 더할때는 carry가 발생하지 않더라도 십의 자리를 더할 때는 carry가 발생하게 되므로 불가능한 조합입니다. 즉, 각 자리수를 모두 각각 더..

백준 15650번 N과 M(2) 풀이 N과 M (2) 설명백트래킹은 완전 탐색과 비슷하게 하나하나 다 경우를 따져보는 알고리즘이다.일반적으로 다 따져보기 때문에 경우의 수가 큰 문제는 적용할 수 없다. 보통 재귀함수를 섞어서 쓰기 때문에 선행적으로 재귀에 대한 이해가 필요하다. 이 문제에서 볼 때 조건은 아래와 같이 2가지이다.조건 1. N개의 자연수를 M 개씩 나열한다.조건 2. 오름차순으로 나열한다. 조건 1을 따져보면 n개와 m개를 입력받고 재귀함수 안에서 m개의 조건을 충족하면 출력한다.bool issu[9];int list[9];int num = 0;int n, m;void func(int a) { if (num == m) { for (int i = 1; i i) continue; el..