SWEA (SW Expert Academy)/D3

[SWEA/D3] 2814 최장 경로 / DFS

2023. 4. 25. 17:54

백준 선행 문제

 

1260번: DFS와 BFS

첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사

www.acmicpc.net

문제 바로가기

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

나의 코드 및 설명

  • 선택한 노드에 대하여, 끝까지 탐색해봐야 최장 거리를 비교할 수 있기 때문에 DFS로 문제를 푸는 것이 적합하다.
  • 메인 함수 부분에서, for문을 통해 시작점이 되는 노드의 모든 경우의 수를 탐색한다.
  • dfs 함수에서 시작점 노드와 방문한 노드를 담을 temp_list를 변수로 받고, dfs를 호출할 때마다 넘겨준다.
##visited 말고 dfs함수의 변수에 정점이 포함되어있는지 확인해야함
def dfs(s, temp_list): #방문한 노드가 담긴 temp_list를 dfs를 호출할때마다 넘겨준다.
    global ans
    ans = max(ans, len(temp_list)) #최대 노드 개수 갱신
    for i in graph[s]:
        if i not in temp_list: #방문한 노드와 연결된 다른 노드가 방문 안했는지 확인(이미 있다면 방문처리 된 것) 
            dfs(i, temp_list+[i])

t = int(input())
for test_case in range(1, t+1):
    n,m = map(int, input().split())
    graph = [[] for _ in range(n+1)]
    for _ in range(m):
        x, y = map(int, input().split())
        graph[x].append(y)
        graph[y].append(x)
    
    ans = 0
    for s in range(1, n+1): #모든 노드를 확인 (시작하는 위치를 준다)
        dfs(s, [s])

    print("#{} {}".format(test_case, ans))

피드백

DFS, BFS를 응용한 문제만 풀다가 이런 기본 문제를 풀려니 어려웠다. 연습을 더 해야할 것 같다. SWEA 문제를 풀며, 이전에 백준 DFS, BFS 기본 문제를 풀었던 것이 기억나서 다시 풀면서 복습했다. DFS와 BFS를 더 공부할 수 있는 좋은 기회가 된 문제이다.

'SWEA (SW Expert Academy) > D3' 카테고리의 다른 글

[SWEA/D3] 1220 Magnetic  (0) 2023.04.26
[SWEA/D3] 1244 최대 상금 / 백트래킹  (0) 2023.04.26
[SWEA/D3] 1216 회문2 / 2차원 리스트 가로,세로 변환  (0) 2023.04.25
[SWEA/D3] 2817 부분 수열의 합 / 백트래킹  (0) 2023.04.17
[SWEA/D3] 5215 햄버거 다이어트 / 백트래킹  (0) 2023.04.13
'SWEA (SW Expert Academy)/D3' 카테고리의 다른 글
  • [SWEA/D3] 1220 Magnetic
  • [SWEA/D3] 1244 최대 상금 / 백트래킹
  • [SWEA/D3] 1216 회문2 / 2차원 리스트 가로,세로 변환
  • [SWEA/D3] 2817 부분 수열의 합 / 백트래킹
hellosonic
hellosonic
꾸준함hellosonic 님의 블로그입니다.
hellosonic
꾸준함
hellosonic
전체
오늘
어제
  • 분류 전체보기 (285)
    • SSAFY (4)
    • 프로그래머스 데브코스 (26)
    • Diary (1)
    • JavaScript (20)
    • ToyPJ (13)
      • Python-Django (13)
    • CS지식 (11)
      • 자료구조 (5)
      • 개발 상식 (2)
      • 네트워크 (4)
    • Baekjoon (141)
      • IM Level (57)
      • DFS와 BFS (21)
      • 백트래킹 (21)
      • DP (3)
      • 이분탐색 (4)
      • 구현 (14)
    • Programmers (13)
      • Lv1 (4)
      • Lv2 (9)
    • SWEA (SW Expert Academy) (52)
      • D1 (5)
      • D2 (7)
      • D3 (40)
    • 이코테 (4)
    • Grammar (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기
  • 관리자

공지사항

인기 글

태그

  • 구현
  • 파이썬 11478
  • 파이썬 1436
  • 코딩부트캠프
  • SWEA 파이썬
  • 파이썬
  • SWEA D3
  • 백준 18870
  • 자바스크립트
  • JS
  • 백준
  • 백준 5212
  • 프로그래머스 데브코스
  • 리액트 todolist
  • 국비지원교육
  • 백준 2999
  • 프로그래머스
  • 이코테
  • 백준 14891
  • SWEA D2
  • 파이썬 1269
  • 파이썬 2529
  • 자바스크립트 기본기
  • 그리디
  • 파이썬 1946
  • javascript ux
  • 프론트엔드 데브코스
  • 백준 1157
  • SWEA/D3
  • SWEA

최근 댓글

최근 글

hELLO · Designed By 정상우.
hellosonic
[SWEA/D3] 2814 최장 경로 / DFS
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.