[Code Tree][Python] BFS / 돌 잘 치우기
·
🚩 Coding Test/Code Tree
Overview체감 난이도: ★★★★☆  * 백트래킹을 잘 몰라서 어려웠다. 문제 유형: BFS, 백트래킹풀이 상태: 답안참고 / 스스로 해결추후: 다시 풀어보기 / 간단 복습 / 완벽 이해 [문제]돌 잘 치우기 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai  [트러블슈팅 & 배운 점]▶︎ 문제 이해 예제 2를 보면, (4, 4) 에서 시작했을 때, (4, 2) 돌을 제거하는 방법과 (3, 4) 돌을 제거하는 방법에서 이동 가능한 칸의 개수가 달라진다.  Q1. 격자에 주어진 돌의 개수 중에서 치울 M개의 돌을 어떻게 고를까? Q2. 고른 돌마다 도달 ..
[BOJ][Python] 15650 N과 M (2)
·
🚩 Coding Test/Baekjoon
[문제] https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net [코드] 15649 N과 M(1) 문제와 다른 점은 다음과 같다. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 고른 수열은 오름차순이어야 한다. i 가 재귀를 돌 때마다 1부터 시작하지 않으면 된다. 함수 인자로 1을 보내주고, 재귀를 돌 때 i + 1을 인자로 보내준다. #dfs x = [] def backtracking(start): if len(x) == m: prin..
[BOJ][Python] 15649 N과 M(1)
·
🚩 Coding Test/Baekjoon
[문제] https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net [코드] 1. 재귀를 사용해서 백트래킹 알고리즘 구현 #dfs // n = 3, m = 1 인 경우 코드 실행 순서 x = [] def backtracking():#5 14 23 if len(x) == m:#6 15 24 print(*x)#7 16 25 return #8 17 26 for i in range(1, n+1): #1 10 19 if i not in x:#2 11 20 x.a..