본문 바로가기
반응형

백트래킹3

[class2]백준 10974번(모든 순열) - 코테공부 24일차(2025.02.15) 문제유형순열 알고리즘풀이 방법 도출 과정1. 순열 알고리즘을 구현하는 것이 목표시간 복잡도최악의 순간을 생각하면 8!이기 때문에 이정도면 1억 번은 넘기지 않는 수이다. 코드 및 간단설명순열 알고리즘을 구현해보았다.N = int(input())lst = []for i in range(1, N + 1): lst.append(i)choose = []check = [False] * Ndef permutation(level): if level == N: print(*choose) return for i in range(0, N): if check[i] == True: continue choose.appen.. 2025. 2. 15.
[class3]백준 1759번(암호 만들기) - 코테공부 24일차(2025.02.15) 문제유형조합 알고리즘풀이 방법 도출 과정1. 조합을 물어보는 문제로 조합 알고리즘을 사용하면된다.2. 하지만 모음 조합 1개, 자음 조합 2개를 사용해서 새로운 것을 만드는 것이기에 모음, 자음을 분리하는 것이 필요하다.3. 또한  모음 자음을 분리했으면 이를 서로 조합해야한다.4. 이를 토대로 코드를 작성해보도록 하겠다.시간 복잡도가장 최악을 구하자면 조합의 수는 O(15 choose 14)이고, 각 조합에 대해 O(14)만큼 처리하는 것이므로 O(15 choose 14 * 14)이다. 이것은 시간 복잡도가 시간에 비해 충분하다는 것을 보여준다.코드 및 간단설명combinations 함수를 사용하여 문제를 풀었다. from itertools import combinations# 모음 리스트vowels .. 2025. 2. 15.
순환 탐색 알고리즘(Cyclic Search Algorithm) 1. 순환 탐색 알고리즘이란?순환 탐색 알고리즘은 데이터가 순환 구조를 가지는 경우(Loop or Cycle), 이를 탐지하고 필요한 정보를 얻는 방법이다.순환 구조란 연결된 데이터들이 특정 지점에서 다시 시작점이나 이미 방문한 지점으로 돌아오는 형태를 의미한다. 이 알고리즘은 그래프, 연결 리스트, 배열 등 순환 구조를 포함한 다양한 문제에서 활용된다. 2. 순환 탐색의 주요 원리시작점에서 탐색: 데이터 구조의 임의의 지점(노드, 인덱스 등)에서 탐색을 시작한다.방문 기록: 이미 방문한 지점을 저장하여 중복 방문이나 무한 루프를 방지한다.순환 확인: 특정 시점에서 시작점으로 돌아오거나 이미 방문한 지점을 재방문하면 순환이 발생한 것으로 간주한다.종료 조건: 순환이 확인되거나 탐색 가능한 모든 데이터를 .. 2025. 1. 23.
반응형