2024/12 2

순열, 조합 문제 풀이 (with. Python)

목차1. 문제 이해하기2. 실전 팁3. itertools 라이브러리 사용4. 자주 나오는 예제1. 문제 이해하기모든 경우의 수를 구해야 한다면, 아래 조건들에 따라 분류합니다. "중복이 허용되는가?"허용된다면: 중복 순열, 중복 조합허용되지 않는다면: 순열, 조합"순서가 중요한가?"순서 중요: 순열, 중복 순열순서 중요하지 않음: 조합, 중복 조합"정렬 조건이 있는가?"오름차순 → 조합비내림차순 → 중복 조합"결과의 조건이 명시되어 있는가?"예를 들어, 총합 제한, 특정 숫자 포함 여부 등의 조건이 있을 수 있음.이 조건을 함수 호출 조건에 포함2. 실전 팁순열/조합 문제는 보통 백트래킹을 사용합니다.백트래킹에서 중요한 것은 1. 종료 조건2. 반복문 (n가지 중 1가지를 pick) ⭐ 추가적으로 결과 ..

Algorithm 2024.12.13

백준 21315. 카드 섞기

목차1. 문제2. 구현3. 개선한 코드2. 구현가능한 k 조합을 2번 반복하더라도 시간 내에 풀 수 있으므로, 모든 조합을 생각했습니다. 1. 카드 섞기 함수를 제외한 나머지 코드를 완성 - max_k 는 입력 카드 수 N 에 대해 나올 수 있는 최대 kimport sysfrom collections import dequeinput = sys.stdin.readlinen = int(input())finish_list = list(map(int, input().split()))start_list = [i for i in range(1, n+1)]# max_k 구하기max_k = 10for i in range(max_k, 0, -1): if 2 ** i  2. 관건은 카드를 섞는 로직인데, deque을..

Algorithm 2024.12.07
728x90