inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

174만명의 커뮤니티!! 함께 토론해봐요.

DFS 문제 하나 여쭤봅니다!..

해결됨

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

강의를 들어보다가 백준 - 16964번 DFS 스페셜 저지 문제를 풀어 보았는데 여러개의 답이 나올 수 있는 경우를 특정하기가 어려줘 질문 남겨봅니다!.. graph에서 순차적으로 나오는 경우는 답을 구할 수 있는데 그래프에서 랜덤한 방향으로 진행될 시 어떻게 해야되는지 궁금합니다!.. 제가 짜본 기본 코드입니다..ㅜㅜ 도움 부탁드립니다! import sys sys.setrecursionlimit(10**6) input = sys.stdin.readline # 함수 def dfs(idx): global visited, answer, graph, order visited[idx] = True answer[idx] = order order += 1 for i in graph[idx]: if not visited[i]: dfs(i) # 0. 입력 조건 N = int(input()) visited = [False] * (N+1) answer = [0] * (N+1) order = 1 graph = [[] for _ in range(N+1)] # 1. 그래프 받아오기 for _ in range(N-1): x, y = map(int, input().split()) graph[x].append(y) graph[y].append(x) # 2. dfs 수행 dfs(1) # 3. 출력하기 given = list(map(int, input().split())) # answer.sort() answer = answer[1:] if given == answer: print(1) else: print(0)

  • python
  • 코딩-테스트
  • 알고리즘
  • dfs
  • python3
tlminn01 댓글 1 좋아요 1 조회수 334

다음강의

해결됨

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

언제나오나요? DP 강의 보고싶네여..

  • python
  • 코딩-테스트
  • 알고리즘
  • dfs
  • python3
댓글 1 좋아요 1 조회수 281

알고리즘 수업 - 깊이 우선 탐색 2( 백준 24480) 번 질문

해결됨

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

강의 제목 : 알고리즘 수업 - 깊이 우선 탐색 2( 백준 24480) 번 질문 안녕하세요! 위 강의 10:14번에 나와있는 정리 노트 관련해서 하나 여쭤보고 싶은 것이 있어요! 5번 '방문 순서를 담기 위해서는 어떤 자료구조를 사용해야 될까?' 이거 답이 리스트(LIST) 인가요?? 혹시 이 정리 노트에 있는 질문 5개에 대한 답변이 적혀있는 PDF 같은 게 있을까요?? 나중에 자격증 공부할 때 도움될 것 같아서 여쭤봅니다 감사합니다! 강의 영상마다 질문이 있으면 언제든 그리고 바로 질문 남겨주세요 ! 질문할 때 가장 정확하게 이해할 수 있습니다. 해당 영상과 관련된 질문들을 해주실 때 제가 가장 정확히 답변 드릴 수 있습니다! 취업 전반의 상담이나, "제 코드가 왜 틀렸는지 알려주세요"와 같이 광범위한 질문은, 질문자의 상황에 따라 답변이 달라질 수 있기 때문에, 정확한 답변을 드리기가 어렵습니다 :( 이런 분들을 위해서는 멘토링 항목으로 별도 제공하고 있으니, 다음 링크를 참고해주세요! 이 링크를 통해서는 본인의 코드가 왜 틀렸는지 모를 때 질문을 주셔도 좋고, 취업 전반(면접 준비, 자소서, CS 면접 등) 에 관련한 질문을 주시면 답변 드리겠습니다 :) "이 질문은 해도 되나?"라는 생각이 드신다면 우선 남겨주세요! 제가 답변 드리기 어려운 건 멘토링에 올려 달라고 재요청 드리겠습니다 :)

  • python
  • 코딩-테스트
  • 알고리즘
  • dfs
  • python3
수정 댓글 1 좋아요 1 조회수 328

1260 문제 풀이에서는 함수 global로 변수 선언

해결됨

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

유형1 문제 풀이에서는 함수 선언에서 global visited, graph 로 선언해줬는데, 왜 여기서는 안하신건가요?

  • python
  • 코딩-테스트
  • 알고리즘
  • dfs
  • python3
미죵2 댓글 1 좋아요 2 조회수 249

PyPy3와 Python3

해결됨

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

백준에서 bfs와 dfs 관련 문제를 추가적으로 풀다보니까, Python3에서는 시간 초과를 해결되지 않는 문제가, PyPy3에서는 해결되는 경우가 있습니다. 이럴 때는 Python3에서도 해결 가능하도록 시간 복잡도를 줄이기 위해 노력해야 할까요? 아니면 PyPy3 환경에서 정답임을 만족해야 할까요...?

  • python
  • 코딩-테스트
  • 알고리즘
  • dfs
  • python3
kyg8821 댓글 1 좋아요 1 조회수 371

백준 2606

해결됨

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

안녕하세요 선생님! 복습하다가 의문점이 생겨 질문드립니다. from collections import defaultdict N = int(input()) T = int(input()) dic = defaultdict(list) discovered = [] for _ in range(T): a, b = map(int, input().split()) dic[a].append(b) dic[b].append(a) def dfs(node): global dic, discovered discovered.append(node) for n in dic[node]: if n not in discovered: dfs(n) return dfs(1) print(len(discovered) - 1) 이 코드에서 dic[b].append(a)를 지워도 문제 해결에는 영향이 없어 보이는데, 백준에 제출하면 틀린 답으로 나옵니다. 즉, 그래프를 양방향이 아닌 단방향으로 설정해도 문제 없지 않나요..?

  • python
  • 코딩-테스트
  • 알고리즘
  • dfs
  • python3
kyg8821 댓글 1 좋아요 1 조회수 258

22479번 문제 런타임 에러 도와주세요 ㅠㅠ

해결됨

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

24479번, 강의 사진과 같이 아래 링크처럼 파이썬으로 코딩했는데, 런타임 에러가 나고 있어요 ㅠㅠ 도와주세요 https://www.acmicpc.net/source/70097735 강의 영상마다 질문이 있으면 언제든 그리고 바로 질문 남겨주세요 ! 질문할 때 가장 정확하게 이해할 수 있습니다. 해당 영상과 관련된 질문들을 해주실 때 제가 가장 정확히 답변 드릴 수 있습니다! 취업 전반의 상담이나, "제 코드가 왜 틀렸는지 알려주세요"와 같이 광범위한 질문은, 질문자의 상황에 따라 답변이 달라질 수 있기 때문에, 정확한 답변을 드리기가 어렵습니다 :( 이런 분들을 위해서는 멘토링 항목으로 별도 제공하고 있으니, 다음 링크를 참고해주세요! 이 링크를 통해서는 본인의 코드가 왜 틀렸는지 모를 때 질문을 주셔도 좋고, 취업 전반(면접 준비, 자소서, CS 면접 등) 에 관련한 질문을 주시면 답변 드리겠습니다 :) "이 질문은 해도 되나?"라는 생각이 드신다면 우선 남겨주세요! 제가 답변 드리기 어려운 건 멘토링에 올려 달라고 재요청 드리겠습니다 :)

  • python
  • 코딩-테스트
  • 알고리즘
  • dfs
  • python3
수정 댓글 1 좋아요 1 조회수 475

11724 문제 질문

해결됨

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

안녕하세요. 공부하다가 또 질문이 생겨 다시 한 번 질문 드립니다...리스트를 조회하는 것보다 딕셔너리를 조회하는 것이 더 빠를 거 같아서 문제의 그래프를 딕셔너리 자료형으로 바꿔주고 있는데요.제가 작성한 코드가 로컬에서 예시를 넣었을 때는 잘 되는데 백준에서는 틀린 답이라고 나옵니다..코드를 첨부하여 질문 드리고 싶은데, 멘토링 부분이 어디있는지 알려주시면 감사하겠습니다!

  • python
  • 코딩-테스트
  • 알고리즘
  • dfs
  • python3
kyg8821 댓글 2 좋아요 1 조회수 341

그래프 초기화

해결됨

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

안녕하세요. 선생님 덕분에 멋진 강의를 듣고 있는 학생입니다.이제 유형 1을 다 수강했는데, graph를 초기화할 때 보통 N의 개수가 적으면 불리언 2차원 배열로 선언하고, N의 개수가 많으면 빈리스트로 구성된 2차원 리스트로 선언하는데요.그냥 모든 문제에 빈리스트로 구성된 2차원 배열을 선언하지 않는 이유가 N의 개수가 적으면 배열로 선언하고 조회하는 게 더 빠르기 때문인지 여쭤봐도 될까요?

  • python
  • 코딩-테스트
  • 알고리즘
  • dfs
  • python3
kyg8821 댓글 1 좋아요 1 조회수 317

선생님! 바이러스 문제 코드 질문있어요오

해결됨

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

선생님 안녕하세요 유튜브에서 보고 오늘 처음 수강했는데 너무 귀에 잘 들어와서 재미있어요 bfs 강의도 올려주세용! 다름이 아니고 바이러스 코드 중 이해가 안 되는 부분이 있어 질문 남깁니다! def dfs(idx): global visited, graph, answer visited[idx]= True answer += 1 for i in range(1, n+1): if not visited[i] and graph[idx][i]: dfs(i) 바이러스 코드에서 idx가 3이 되고 answer가 3이 되는 부분 까지는 이해를 했는데 idx가 3일 때 for문을 돌면 2는 이미 방문했기 때문에 if문은 7까지 true가 되지 못하고 종료되는 것 아닌가요? 다시 idx=2로 돌아가서 5를 방문하게 되고 1에서 6을 방문하게 되는 부분은 코드 어느 부분에서 이루어지는 건지 잘 모르겠어요ㅜㅜ

  • python
  • 코딩-테스트
  • 알고리즘
  • dfs
  • python3
도실버 댓글 2 좋아요 1 조회수 316

시트 이름 지정하려는데 title 명령이 안 먹혀요

미해결

파이썬 무료 강의 (활용편4) - 업무자동화 (RPA)

기본 명령어인 것 같은데 어째서 title만 어트리뷰트가 없다고 에러 뜰까요? 프로그램을 껐다 켜봐도 이렇습니다.. 파이선 3.8.6 버전 쓰고 있고 비주얼 스튜디오 코드는 1.83.1 버전 쓰고 있는 것 같네요

  • rpa
  • 파이썬
  • openpyxl
  • python
  • python3
이예린 댓글 1 좋아요 0 조회수 430

질문있습니다!

해결됨

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

선생님 안녕하세요 유형2로 들어와서 이제 visited를 2차원 배열로 만들기 시작하고 나서부터 계속 제가 헷갈리는게 선생님은 dfs 배열에 인자로 x,y가 아니고 y,x로 넘기시고 또 배열도 map[y][x]로 접근하시는 이유가 있으실까요? 보통 가로축을 x로 놓고 세로축을 y로 놓는 것으로 알고 있는데 혼자 고민해 봤을때는 지금 문제들이 계속 가로 세로 길이가 다르더라구요 그래서 또 2차원 배열로 생각해보면 가로축이 column이 되고 세로축이 row가 되어서 그런건가 싶기도 하고.. 유형 2 파트와서 계속 이 부분이 헷갈리네요 두서없는 질문이지만 궁금해서 여쭤봅니다! 감사합니다

  • python
  • 코딩-테스트
  • 알고리즘
  • dfs
  • python3
noeliden1 댓글 1 좋아요 1 조회수 364

2644 촌수계산 문제에 관한 질문

해결됨

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

선생님 안녕하세요! 강의 너무 잘 듣고 있습니다! 제가 2644번 문제를 혼자 아래 코드로 풀어보았는데 저는 선생님께서 count변수를 dfs 함수 인자에 준 것과는 다르게 처음부터 전역변수로 설정해서 조건이 맞으면 count 변수를 1씩 증가시키는 방향으로 작성을 했는데요. 이렇게 하니까 백준에서는 틀렸다고 나오더라구요. 둘 다 if문 안에서 조건이 맞으면 카운트 변수를 1씩 증가시키는건 같은거라고 생각이 드는데 (물론 다르겠지만..) 왜 카운트 변수를 인자로 넘겨줘야할까요? 감사합니다!

  • python
  • 코딩-테스트
  • 알고리즘
  • dfs
  • python3
noeliden1 댓글 1 좋아요 1 조회수 280

알고리즘 수업 깊이 우선 탐색1 수업자료 문의

해결됨

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

알고리즘 수업 깊이우선탐색2의 자료가 올라와 있는 것 같습니다.

  • python
  • 코딩-테스트
  • 알고리즘
  • dfs
  • python3
Edwards 댓글 2 좋아요 1 조회수 358

백준 11724 연결 요소의 개수 문제

해결됨

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

선생님 안녕하세요 일단 너무 만족스러운 강의 준비해주셔서 감사하고 정말 돈이 하나도 아깝지 않은 강의입니다. DFS 강의 말고도 다른 알고리즘 강의도 준비해주시면 너무 좋을것 같아요 ㅠㅠ 아무튼 질문은요, 선생님 강의를 듣고 아래처럼 제가 코드를 짰는데 선생님 코드랑 몇번을 비교해도 다른 점이 보이질 않는데 백준에서 제출했을 때 계속 메모리 초과라고 나옵니다. 혹시나 제가 바보같은 실수를 했을 수 있으니 미리 사과드립니다 ㅠㅠ!! 감사합니다 import sys sys.setrecursionlimit(10**6) N, M = map(int, sys.stdin.readline().split()) MAX = 1000 + 10 graph = [[False] * MAX for _ in range(MAX)] visited = [False] * MAX answer = 0 for _ in range(M): u, v = map(int, sys.stdin.readline().split()) graph[u][v] = True graph[v][u] = True def dfs(idx): visited[idx] = True for i in range(1, N + 1): if not visited[i] and graph[idx][i]: dfs(i) for i in range(1, N + 1): if not visited[i]: dfs(i) answer += 1 print(answer)

  • python
  • 코딩-테스트
  • 알고리즘
  • dfs
  • python3
noeliden1 댓글 2 좋아요 1 조회수 514

바이러스 백준 2606 dfs 종료는 어떻게 되는건가요?

해결됨

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

def dfs(idx): global visited, graph, answer visited[idx] = True answer += 1 for i in range(1,N+1): if not visited[i] and graph[idx][i]: dfs(i) 이와 같은 dfs 재귀함수에서 dfs(1)이 맨 처음에 실행되고 조건에 따라 계속 재귀되는데 마지막 dfs(7)까지 간다고 했을 때 range(1,N+1)에 범위는 넘지만 dfs(8), dfs(9), ... 이런식으로 계속 코드가 돌아버릴 수도 있는 것이 아닌가요?? DFS와 재귀함수가 처음이여서 질문을 명확하게 못 작성한 것 같네요. return이라는게 필요한 것이 아닌지, 재귀함수에 종료조건 이 어떻게 되는 것인지 궁금해서 여쭤봅니다. 답변 기다리겠습니다. 감사합니다

  • python
  • 코딩-테스트
  • 알고리즘
  • dfs
  • python3
녜힁 댓글 1 좋아요 1 조회수 219

연결되어 있고 아직 방문하지 않은 노드에 대한 방문 순서 관련

해결됨

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

제가 경험이 부족해서 그런 것 같은데요, 이 문제는 'x < y'라는 조건이 없다면 DFS로 풀 수 있는 문제가 아닌 것 같다는 생각이 들었습니다. https://www.acmicpc.net/problem/2644 에서 '입력' 파트를 보면, '번호 x는 뒤에 나오는 정수 y의 부모 번호를 나타낸다.'라고만 나와있습니다. 즉, 'x < y'라는 조건이 주어져 있지 않습니다. 부모 노드 번호가 자식 노드 번호보다 작다는 조건이 주어져 있지 않는 것입니다. 그래서 저는 이 문제가 DFS로 풀리는 문제가 아닐 것 같다고 생각했었습니다. 위 그림에서는 노드2의 부모가 1이지만, 2보다 값이 큰 3이 될 수도, 4가 될 수도 있을 것이라 생각했습니다. 따라서 노드2를 방문한 이후에, 노드2와 연결된 노드 중 아직 방문하지 않은 노드들 중 어떻게 부모 노드를 찾아야하지? '부모 노드 번호 < 자식 노드 번호'라는 조건이 없으면, 부모 노드를 찾을 수 없을 것 같은데?하는 생각이 들었습니다. 문제에서 x<y라는 조건이 없는 것 같은데, 어떻게 '나와 연결되어 있고 아직 방문하지 않은 노드 중 번호가 가장 작은 노드를 방문해야겠다'는 생각을 하신 것인지 궁금합니다..

  • python
  • 코딩-테스트
  • 알고리즘
  • dfs
  • python3
도토리 댓글 1 좋아요 1 조회수 258

문제 조건 관련 질문

해결됨

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

문제( https://www.acmicpc.net/problem/1260 )에 다음과 같은 조건이 있는데, 이게 무슨 의미인가요..? 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다.

  • python
  • 코딩-테스트
  • 알고리즘
  • dfs
  • python3
도토리 댓글 1 좋아요 1 조회수 257

graph, visited 사이즈 관련 문의

해결됨

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

graph, visited의 사이즈를 다음 코드와 같이 노드 개수에 맞게 (n+1)로 하면 되겠다고 생각했는데, 노드 개수의 최댓값인 1000을 이용해 사이즈를 정하신 이유가 무엇인가요?? graph = [[False]*(n+1) for _ in range(n+1)] visited = [False]*(n+1)

  • python
  • 코딩-테스트
  • 알고리즘
  • dfs
  • python3
도토리 댓글 1 좋아요 2 조회수 369

딕셔너리 키-값 같이 출력하는 방법

해결됨

출력: 이렇게 나오게 만들고 싶어서 for, if-elif 문을 사용하였는데 딕셔너리일 때 어떤 식으로 코드를 작성해야 입력 부분의 중복을 없앨 수 있을지 고민입니다.. 전문가님들 고견 부탁드려요! 소중한 시간 내주셔서 감사합니다~~ 출력: 입력: - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • 딕셔너리
  • python3
  • 파이썬
  • 질문
준희 김 댓글 1 좋아요 0 조회수 297

인기 태그

인프런 TOP Writers

주간 인기글