[알고리즘 전략] DFS/ BFS/ 백트래킹

2024. 10. 9. 11:49·알고리즘
728x90
반응형

📌 관련 코테 풀이 모음집 (계속 업데이트 해보자고요)

  • 2024.10.09 - [코딩테스트/BAEKJOON] - [백준/Python] 1260. DFS와 BFS
  • 2024.10.12 - [코딩테스트/BAEKJOON] - [백준/Python] 5014번. 스타트링크
  • 2024.10.12 - [코딩테스트/BAEKJOON] - [백준/Python] 1697번. 숨바꼭질
  • 2024.10.11 - [코딩테스트/BAEKJOON] - [백준/Python] 2644번. 촌수 문제
  • 2024.10.09 - [코딩테스트/BAEKJOON] - [백준/Python] 2667번. 단지번호 붙이기
  • 2024.10.09 - [코딩테스트/BAEKJOON] - [백준/Python] 2606번. 바이러스
  • 2024.10.09 - [코딩테스트/BAEKJOON] - [백준/Python] 2178번. 미로탐색
  • 2024.10.08 - [코딩테스트/프로그래머스] - [프로그래머스/Python] 코딩테스트연습 - DFS/BFS - 여행경로
  • 2024.10.16 - [코딩테스트/프로그래머스] - [프로그래머스/Python] 알고리즘고득점Kit-DFS/BFS-게임맵최단거리

 

📌 DFS가 유리한 경우 

  1. 재귀적인 특징과 백트래킹을 이용해 모든 경우를 하나씩 전부 탐색하는 경우 
  2. 그래프의 크기가 클 경우 
  3. 최적화된 답을 찾는 것이 아닐 경우 
  4. 경로의 특징을 저장해야 하는 경우 ex. 경로의 가중치

 

📌 BFS가 유리한 경우 

  1. 최단 거리 or 최단 횟수 구하는 경우 
  2. 최적화된 답을 찾는 경우 => BFS는 가장 처음 발견되는 해답이 최단 거리이다. 
  3. 탐색의 횟수를 구해야 하는 경우

 

⭐ 길찾기 문제 = DFS/BFS 단골 문제 
1. dx, dy, (dz)를 정의한다. (상하좌우 움직이는 거 계산 가능함) 
2. visited = [[0] * N for _ in range(N)] 방문한 곳은 체크표시한다. 
3. for문으로 nx, ny = x + dx[i], y + dy[i] 를 계산해 (1) 범위 내인지 (2) 방문 안한곳인지 체크하면 된다. 

 

 

📌 백트래킹

  • 기본적으로 완전 탐색 알고리즘이다. 
  • DFS나 BFS와 같은 방식으로 진행되지만, 진행 과정에서 답이 아닌 분기를 만나면 탐색을 진행하지 않고 돌아가 다른 분기로 감으로써 가지치기를 한다. 
  • => 결론: DFS, BFS 풀 때 if (): return 이럴 때가 백트래킹에 해당한다고 보면 됨. 

 

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'알고리즘' 카테고리의 다른 글

[알고리즘 전략] 완전탐색  (0) 2024.10.26
[알고리즘 전략] python 기본 자료구조 정리  (2) 2024.10.25
[알고리즘/Python] 힙(Heap)  (0) 2024.10.18
[알고리즘/Python] 스택(Stack) /큐(Queue)  (1) 2024.10.18
[알고리즘 전략] 탐욕법(Greedy)/ DP(동적 계획법)  (3) 2024.10.16
'알고리즘' 카테고리의 다른 글
  • [알고리즘 전략] python 기본 자료구조 정리
  • [알고리즘/Python] 힙(Heap)
  • [알고리즘/Python] 스택(Stack) /큐(Queue)
  • [알고리즘 전략] 탐욕법(Greedy)/ DP(동적 계획법)
heeya16
heeya16
개발 공부 냠냠
  • heeya16
    개발자 희야
    heeya16
  • 전체
    오늘
    어제
    • 분류 전체보기 (105)
      • 코딩테스트 (66)
        • 프로그래머스 (38)
        • SWEA (2)
        • BAEKJOON (26)
      • 알고리즘 (7)
      • 자료구조 (19)
      • 프로젝트 (5)
      • 취업 주르륵 (2)
      • 데이터베이스 (0)
      • IT지식 (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    1003
    10448
    10773
    10월
    10진수
    11047
    11399
    11403
    11866
    1449
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
heeya16
[알고리즘 전략] DFS/ BFS/ 백트래킹
상단으로

티스토리툴바