estherseo
JINIWAY
estherseo
전체 방문자
오늘
어제
  • 분류 전체보기
    • 전공공부
    • CS
      • Network
      • Algorithm
      • 📖
      • python
      • django
    • Pentest
      • 📖
      • HTB
      • Machines
    • Web-hacking
      • 📖
      • Dreamhack
      • Portswigger
    • System-hacking
      • 📖
    • Mobile-hacking
    • Project
    • CVE
    • CTF
    • News & Conference
    • 자격증
    • 신기술
      • AI

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 블로그 소개

인기 글

최근 댓글

최근 글

태그

  • 다크웹 모니터링
  • ASC 스터디
  • HTB valentine
  • n00bCTF
  • HTB shocker
  • 화이트햇투게더1기
  • 2022 pox
  • shocker
  • 다크웹 모니터링 서비스
  • 기사요약
  • CTF공부
  • 2022 네트워크관리사
  • 시스템해킹 스터디
  • 패킷잡기
  • 스택카나리
  • asc
  • 시스템해킹공부
  • jwt token last character
  • 중소기업 정보보호
  • Pillow취약점
  • 네트워크관리사 실기 합격
  • integer overflow
  • ASC스터디
  • pox2022
  • 화이트햇투게더1기 결과공유회
  • python eval
  • 셸쇼크
  • CVE-2022-22817
  • 화이트햇투게더
  • 세계신안보포럼
hELLO · Designed By 정상우.
estherseo

JINIWAY

CS/Algorithm

[Algorithm][dfs, bfs] 백준 1260 : dfs와 bfs

2024. 6. 28. 02:11
"""
1. 아이디어
- DFS : 재귀
- BFS : Queue
2. 시간복잡도
- graph 초기화 : O(N^2)
- BFS : O(N+M)
- DFS : O(N+M)
3. 자료구조
- BFS graph : bool[N+1][N+1] 사용 (popleft가 구현되어있다. 시간복잡도가 낮다)
- visited : bool[N+1]
- BFS deque
4. 학습
- 4방향 벡터는 2차원 행렬에서 필요. 이 문제는 1차원 리스트 형태.
- queue의 FIFO 특성을 구현한 것: deque
"""
import sys
from collections import deque
input = sys.stdin.readline

N,M,V = map(int, input().split())
graph = [[False]*(N+1) for _ in range(N+1)]
# 간선 체크
for _ in range(M):
    a, b = map(int, input().split())
    graph[a][b]=True
    graph[b][a]=True

visited1 = [False]*(N+1)
visited2 = [False]*(N+1)

def dfs(V):
    visited1[V]=True
    print(V, end=' ')
    for i in range(1, N+1):
        if graph[V][i]==True and not visited1[i]:
            dfs(i)
def bfs(V):
    q = deque([V])
    visited2[V]=True
    while q:
        V = q.popleft()
        print(V, end=' ')
        for i in range(1, N+1):
            if graph[V][i]==True and visited2[i]==False:
                visited2[i]=True
                q.append(i)

dfs(V)
print()
bfs(V)

'CS > Algorithm' 카테고리의 다른 글

[Algorithm] 선택정렬, 삽입정렬, 계수정렬  (0) 2024.06.30
[Algorithm][이진탐색] 백준 1920 : 수찾기  (0) 2024.06.29
[Algorithm] 백준 11660 : 구간합 구하기  (0) 2024.06.26
[Algorithm][dfs] 백준-2667  (0) 2024.06.26
[Algorithm][bfs] 백준-1926  (0) 2024.06.24
    'CS/Algorithm' 카테고리의 다른 글
    • [Algorithm] 선택정렬, 삽입정렬, 계수정렬
    • [Algorithm][이진탐색] 백준 1920 : 수찾기
    • [Algorithm] 백준 11660 : 구간합 구하기
    • [Algorithm][dfs] 백준-2667
    estherseo
    estherseo
    안녕하세요😀

    티스토리툴바