본문 바로가기
728x90
반응형

깊이 우선 탐색2

[백준] 13023번 : ABCDE - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 N의 최대 범위가 2,000이므로 알고리즘의 시간 복잡도를 고려할 때 조금은 자유롭다. 문제에서 요구하는 A, B, C, D, E의 관계는 재귀 함수의 형태와 비슷하기 때문에 주어진 모든 노드에 DFS를 수행하고 재귀의 깊이가 5 이상(5개의 노드가 재귀 형태로 연결)이면 1, 아니면 0을 출력한다. DFS의 시간 복잡도는 O(V + E)이므로 최대 4,000, 모든 노드를 진행했을 때 4,000 * 2,000 즉, 8.000.000이므로 DFS를 사용해도 제한 시간 내에 문제를 해결할 수 있다. 그래프 데이터를 인접 리스트로 저장하고 모.. 2024. 1. 18.
[백준] 2023번 : 신기한 소수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2023번: 신기한 소수 수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 재귀 함수에 자릿수 개념을 붙여 DFS를 구현하고 문제 조건에 맞도록 가지치기를 하며 문제를 해결한다. 제일 앞자리부터 모든 수가 소수이어야 하므로 우선 자릿수가 한 개인 소수 2, 3, 5, 7로 시작하는 수를 탐색한다. 두 자릿수 이상부터는 해당 수의 마지막 자릿수가 짝수이면 무조건 소수가 아니므로 짝수를 가지치기한다. 현재 수 * 10 + 새로운 자릿수를 계산하여 해당 수가 소수인지 판단하고 소수이면 재.. 2024. 1. 17.
728x90
반응형