묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
그래프 초기화
안녕하세요. 선생님 덕분에 멋진 강의를 듣고 있는 학생입니다.이제 유형 1을 다 수강했는데, graph를 초기화할 때 보통 N의 개수가 적으면 불리언 2차원 배열로 선언하고, N의 개수가 많으면 빈리스트로 구성된 2차원 리스트로 선언하는데요.그냥 모든 문제에 빈리스트로 구성된 2차원 배열을 선언하지 않는 이유가 N의 개수가 적으면 배열로 선언하고 조회하는 게 더 빠르기 때문인지 여쭤봐도 될까요?
-
해결됨[파이썬/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을 방문하게 되는 부분은 코드 어느 부분에서 이루어지는 건지 잘 모르겠어요ㅜㅜ
-
미해결파이썬 무료 강의 (활용편4) - 업무자동화 (RPA)
시트 이름 지정하려는데 title 명령이 안 먹혀요
기본 명령어인 것 같은데 어째서 title만 어트리뷰트가 없다고 에러 뜰까요? 프로그램을 껐다 켜봐도 이렇습니다..파이선 3.8.6 버전 쓰고 있고 비주얼 스튜디오 코드는 1.83.1 버전 쓰고 있는 것 같네요
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
질문있습니다!
선생님 안녕하세요유형2로 들어와서 이제 visited를 2차원 배열로 만들기 시작하고 나서부터 계속 제가 헷갈리는게 선생님은 dfs 배열에 인자로 x,y가 아니고 y,x로 넘기시고 또 배열도 map[y][x]로 접근하시는 이유가 있으실까요? 보통 가로축을 x로 놓고 세로축을 y로 놓는 것으로 알고 있는데혼자 고민해 봤을때는 지금 문제들이 계속 가로 세로 길이가 다르더라구요 그래서 또 2차원 배열로 생각해보면 가로축이 column이 되고 세로축이 row가 되어서 그런건가 싶기도 하고.. 유형 2 파트와서 계속 이 부분이 헷갈리네요두서없는 질문이지만 궁금해서 여쭤봅니다!감사합니다
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
2644 촌수계산 문제에 관한 질문
선생님 안녕하세요!강의 너무 잘 듣고 있습니다!제가 2644번 문제를 혼자 아래 코드로 풀어보았는데저는 선생님께서 count변수를 dfs 함수 인자에 준 것과는 다르게 처음부터 전역변수로 설정해서 조건이 맞으면 count 변수를 1씩 증가시키는 방향으로 작성을 했는데요.이렇게 하니까 백준에서는 틀렸다고 나오더라구요.둘 다 if문 안에서 조건이 맞으면 카운트 변수를 1씩 증가시키는건 같은거라고 생각이 드는데 (물론 다르겠지만..)왜 카운트 변수를 인자로 넘겨줘야할까요? 감사합니다!
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
알고리즘 수업 깊이 우선 탐색1 수업자료 문의
알고리즘 수업 깊이우선탐색2의 자료가 올라와 있는 것 같습니다.
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
백준 11724 연결 요소의 개수 문제
선생님 안녕하세요일단 너무 만족스러운 강의 준비해주셔서 감사하고 정말 돈이 하나도 아깝지 않은 강의입니다. 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 알고리즘! - 입문편
바이러스 백준 2606 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 알고리즘! - 입문편
연결되어 있고 아직 방문하지 않은 노드에 대한 방문 순서 관련
제가 경험이 부족해서 그런 것 같은데요, 이 문제는 '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 알고리즘! - 입문편
문제 조건 관련 질문
문제(https://www.acmicpc.net/problem/1260)에 다음과 같은 조건이 있는데, 이게 무슨 의미인가요..?어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다.
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
graph, visited 사이즈 관련 문의
graph, visited의 사이즈를 다음 코드와 같이 노드 개수에 맞게 (n+1)로 하면 되겠다고 생각했는데, 노드 개수의 최댓값인 1000을 이용해 사이즈를 정하신 이유가 무엇인가요??graph = [[False]*(n+1) for _ in range(n+1)] visited = [False]*(n+1)
-
해결됨
딕셔너리 키-값 같이 출력하는 방법
출력: 이렇게 나오게 만들고 싶어서 for, if-elif 문을 사용하였는데 딕셔너리일 때 어떤 식으로 코드를 작성해야 입력 부분의 중복을 없앨 수 있을지 고민입니다.. 전문가님들 고견 부탁드려요! 소중한 시간 내주셔서 감사합니다~~ 출력: 입력: - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결
python cx_freeze linux
안녕하세요 윈도우에서 cx_freeze 사용하여 실행파일 만들면 exe 실행 파일 만들어 지면서 잘 동작합니다. 하지만 리눅스에서는 실행파일은 나오는데 실행 파일을 클릭해보면 "공유 라이브러리" 파일에 대해 동작하는 포로그램을 설치하지 않았습니다. 하고 나와 소스코드 앞에 #!/usr/bin/env python3 를 다 붙여 python3 setup.py build 를 하여 싫행파일을 클릭해봐도 같은 증상입니다.ㅠㅠ 혹시 해결방법 아시는분 있으신가요? 아 그리고 briefcase 라는 모듈도 같은 역할을 하는건가요?? 독립 실행형 패키지를 만들 수 있는 피키징 도구라는 말만 있고 자료가 너무 없네요ㅠㅠ