백트래킹 2

[백준/python] 3980번 선발 명단

1. 문제 이 문제는 선수의 능력치를 고려하여 포지션을 정해 가장 최대의 능력치를 구하는 문제이다.11명의 선수들에 대해 11개 포지션에 대한 능력치를 수치화하여 제시한다.그 숫자들 중 모든 경우의 수를 고려하여 가장 최대의 합을 구하는 문제이다.즉, 전형적인 백트래킹 문제.2. 풀이솔직히 이 문제를 어떻게 풀어야 할지 감이 안 왔다.아직 알고리즘 실력이 부족하기 때문인 것 같다.어떤 상황에서 어떤 알고리즘을 써야 하는지 아직 잘모르는 것 같아서백트래킹 알고리즘을 다시 정리해야겠다고 생각했다.https://jemarque.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%B0%B1%ED%8A%B8%EB%9E%98%ED%82%B9-Backtrackin..

[알고리즘] 백트래킹 Backtracking

최근 코딩테스트 문제를 풀면서 알고리즘 정리가 필요함을 느꼈다.자주 출제되는데 아직 나에게 어려운 백트래킹을 먼저 정리해보려고 한다. 백트래킹 모든 경우의 수를 고려하는 알고리즘 백트래킹은 재귀를 활용해 모든 경우의 수를 확인하는 알고리즘이다.대표적으로 DFS, BFS를 사용하며 코딩테스트에서 잘 다루어지는 알고리즘이기도 하다.시간복잡도는 중복이 가능한 경우, N**2이고 중복이 불가한 경우는 N!이다. 목표한 조건에 도달하는 경우를 탐색하는 것인데,절대 목표에 도달할 수 없다고 판단이 되면 앞으로 돌아가서 다시 그 조건에 맞는 경우를 탐색한다. 1. DFS깊이 우선 탐색트리에서 바닥에 도달할 때까지 한쪽 방향으로만 내려가는 방식으로재귀함수를 사용하여 목표한 바가 나올 때까지 반복한다.일반적으로 모든 경..