백트레킹(5)
-
[BOJ_Python] 15663 ~15666. N과 M 시리즈 3 (9 ~ 12)
문제N과 M(9) : https://www.acmicpc.net/problem/15663N과 M(10) : https://www.acmicpc.net/problem/15664N과 M(11) : https://www.acmicpc.net/problem/15665N과 M(12) : https://www.acmicpc.net/problem/15666 사용 알고리즘Backtracking 풀이후기1. 이번 시리즈의 keypoint는 중복되는 숫자 처리이다. N과 M 시리즈 1(1 ~ 4)와 로직이 비슷하나 동일 숫자의 중복 처리가 더해져 조금 더 까다로웠다.2. 백트레킹 유형을 통해 중복 수를 활용한 순열과 조합 등의 방식을 직접 구현 할 수 있었다. 15663. N과 M (9) 1. 이 문제가 이후 문제 풀이에..
2024.11.27 -
[BOJ_Python] 15654 ~ 15657. N과 M 시리즈 2 (5 ~ 8)
문제N과 M(5) : https://www.acmicpc.net/problem/15654N과 M(6) : https://www.acmicpc.net/problem/15655N과 M(7) : https://www.acmicpc.net/problem/15656N과 M(8) : https://www.acmicpc.net/problem/15657 사용 알고리즘Backtracking 풀이후기1. 이번 시리즈는 N과 M 시리즈 1(1 ~ 4)와 로직은 동일하나 연속된 수가 아닌 입력받은 수로 진행하는 문제이다.때문에 로직에 큰 변화없이 입력받은 수를 가지고 저번과 동일하게 진행하였다.2. 백트레킹 유형을 통해 입력받은 수로 순열과 조합 등의 방식을 직접 구현 할 수 있었다.15654. N과 M (5) 1. 이 문제..
2024.11.26 -
[BOJ_Python] 15649 ~ 15652. N과 M 시리즈 1 (1 ~ 4)
문제https://www.acmicpc.net/problem/15649https://www.acmicpc.net/problem/15650https://www.acmicpc.net/problem/15651https://www.acmicpc.net/problem/15652 사용 알고리즘Backtracking 풀이후기1. 이 문제 시리즈는 큰 틀은 비슷하고 조건에 따라 약간의 변화를 추가한 백트레킹 문제이다.백트레킹은 주로 들어가기 전에 해준 처리를 나와서 초기화 시키며 진행하는 방법을 사용한다.2. 백트레킹 유형을 통해 순열과 조합 등의 방식을 직접 구현 할 수 있었다. 15649. N과 M (1) 1. 이 문제가 이후 문제 풀이에 가장 기초 틀이 되는 문제이다.2. 1부터 N까지 자연수 중에서 중복 없이 ..
2024.11.25 -
[Programmers_Python]단어 변환
문제https://school.programmers.co.kr/learn/courses/30/lessons/43163사용 알고리즘BackTrackingBFS 풀이고려사항1. answer 변수 global 설정2. 단어에서 한 부분만 다른지 확인3. 지금 경로가 이미 최적 해를 넘었다면 이후 탐색은 필요 없음4. target 도착 여부 확인 후기1. 프로그래머스로 재귀나 백트래킹 등 함수를 만들어서 풀때 변수의 생명주기를 관리하는 것이 까다롭다.백준의 경우 solution 함수가 따로 존재하지 않고 가장 밖에서 다른 함수를 호출하면 되기 때문에가장 밖에 위치하고 있는 변수를 계속 함수에 매개변수로 들고 들어가지 않아도 관리 할 수 있지만,함수에서 생긴 변수를 다른 함수에서 사용 할 때는 따로 관리해주어야 ..
2024.10.17 -
[BOJ_Python]1941. 소문난 칠공주
문제https://www.acmicpc.net/problem/1941 사용 알고리즘BFS, Backtracking, BruteForce 풀이고려사항1. 인원 7명 모으기2. 이다솜파(S)의 수가 4이상인지 확인3. 모인 7명의 인접여부 확인 후기1. 이 문제의 keypoint는 학생을 인덱스화하여 백트레킹을 진행하는 것이다.idx = [(i, j) for j in range(5) for j in range(5)]인덱스화를 하여 지금 위치 이후 학생들을 기준으로 재귀를 진행했고이 방식을 사용하면 동일한 학생 집단의 중복이 없다.처음에 다른 방식으로 한 학생을 기준으로 잡고 7명을 모은 경우다른 학생을 기준으로 7명을 잡은 경우와 중복되어 동일한 집단이 겹치는 경우가 발생했다.이것을 확인하는 것에 시간이 많..
2024.10.15