무료
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결파이썬으로 배우는 알고리즘 기초
Algorithm 3.5 : Print Shortest Path 관련 질문 (플로이드 알고리즘)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 40대에 IT인프라분야에 근무하는 직장인입니다. 우선 대학교 학부 시절에 학점 이수가 어려워 미수강 하였던 알고리즘에 대해 이렇게 이해하기 쉽게 구성된 강의를 무료로 제공해주셔서 정말 감사드립니다. 제가 궁금한 것은 다름이 아니라 하기의 강의 중 실습 코드중에서 def path (P, u, v): # u : Source , v: Destination if (P[u][v] != -1): path(P, u, P[u][v]) print('v%d'%(P[u][v]), end='-> ') #path(P, P[u][v], v) # 재귀 호출 하지 않아도 결과 동일?? 마지막 path(P, P[u][v], v) 코드는 생략해도 되지 않나요? 제생각에는 모든 재귀호출이 종료되면 결국 최초 호출시 u, v 입력값으로 돌아가므로 최종 목적지 노드 정보 그대로이고 따라서 마지막 라인의 코드인 print('v%d'%(v), end=' ') 에서 최종 목적지 노드 정보가 그대로 입력 되는 것 같습니다.... 감사합니다.
- 미해결파이썬으로 배우는 알고리즘 기초
코드 중간에 오류 보고 합니다!
안녕하세요 교수님! 강의 잘 듣고 있습니다. 코드 돌려보다가 제가 돌렸을때 오류가 있어서 발견하여 적어봅니다. while 문 내에 while (s[i] < pivotitem) 에서, 앞에 i <= j and 조건이 들어가야 하는것 아닌가 해서 적어봅니다 pdf 파일 코드 그대로 돌렸을때 index 에러가 나더라구요! 다른분들 도움 될 것 같아서 이렇게 글을 올려봅니다. 항상 좋은 강의 감사합니다 교수님!
- 미해결파이썬으로 배우는 알고리즘 기초
쉽지 않네요 ㅠ
알고리즘을 공부하려고, 강의를 찾다가 주니온 님의 강의를 듣고 있습니다. 저는 지금 Flutter 앱 개발을 위해서, Dart 언어를 공부하고 있는데, 주니온 님의 강의를 들으면서, Dart 언어에 적용해보는 것이 알고리즘을 이해하는데 도움이 될까요? 아니면, 이런 알고리즘을 적용하기에 좋은 언어가 따로 있을까요? 아직 초반인데, 분할 정복법부터 이해하는 게 많이 어렵네요 ㅠㅠ
- 미해결파이썬으로 배우는 알고리즘 기초
분기 한정법과 배낭 문제
안녕하세요! 이제 수업을 거의 다수강해 가고 있네요. 감사합니다! 그런데 분기 한정법과 배낭 문제에 몇가지 질문할 것이 있습니다. 첫번째, bound : 현재 노드에서 앞으로 얻을 수 있는 최대 이익 이라고 하셨는데, 이 식을 보면 (bound = (현재까지 얻은 이익+나머지 노드들 중 전부 담아도 W를 넘지 않는 이익) + (전부 담으면 W가 넘는 노드 k의 이익)) 로 이해가 됩니다. 그런데, w_i배열의 마지막 값이 앞선 원소들의 합보다 월등히 크다면, 위 bound 식이 현재 노드에서 앞으로 얻을수 있는 최대 이익이 될 수 없을 것 같습니다. 그래서 제 생각에는 먼저 이익의 내림차순으로 정렬을 하면 bound의 정의를 만족할 것 같은데 제각 생각한것이 맞을까요? 두번째, , 위 두 그림에서 (3,1)과 (4,1)이 nonpromising한 이유가 bound 값이 maxprofit보다 작아서 라고 하셨는데, 제 생각에는 (bound = (현재까지 얻은 이익+나머지 노드들 중 전부 담아도 W를 넘지 않는 이익) + (전부 담으면 W가 넘는 노드 k의 이익)) 인데, 그렇다면 항상 (3,1)과 (4,1)에서의 bound 값은 maxprofit보다 크거나 같을 것 같습니다. 그래서 제 생각에는 nonpromising한 이유가 bound 값 때문이 아니라 무게의 합이 W보다 거쳐서 nonpromising 하다고 생각했는데 맞을까요? 항상 강의 잘 듣고 있습니다. 좋은강의에 늘 감사드립니다 :)
- 해결됨파이썬으로 배우는 알고리즘 기초
배낭문제와 동적계획법
안녕하세요!배낭문제와 동적계획법을 풀면서 궁금한점이 있습니다. 앞선 동적계획법 강의에서는 동적계획법이란, 문제를 해결할 수 있는 재귀 관계식을 구한다 가장 작은 입력사례로부터 상향식 방법으로 문제를 해결한다 인데, 위 재귀 관계식은 그냥 식 사이의 관계로 인해 도출된 것이고 이것을 그대로 옮긴것이 다음의 코드인데, 제가 봤을 때 이 코드는 그냥 재귀적을 문제를 해결하고, 작은 입력사례로부터 Memoization하며 bottom-up하지도 않고 있지도 않고 Top-Down으로 문제를 해결하고 있는데 이것이 왜 동적계획법인지 궁금합니다!
- 해결됨파이썬으로 배우는 알고리즘 기초
최적 이진검색트리 관계식
안녕하세요! 최적 이진검색트리에서 궁금한점이 있어서 질문 남깁니다. 위 식에서 이 부분이 위에서 를 탐색하는 비용이라고 하셨는데, 제 생각에는 를 탐색하는 비용은 P_k가 되야 될거 같은데 왜 가 되는지 궁금합니다. 여기에서 어떤 임의의 K_i를 탐색하게 되더라도 탐색 깊이가 1인 (비교횟수가 1인) 를 무조건 지나가게 되니 비교횟수 1 * (모든 K_i의 확률)이 되서 가 된것인가요??
- 해결됨파이썬으로 배우는 알고리즘 기초
플로이드 알고리즘
플로이드 알고리즘을 공부하는데 몇가지 이해가 안되는 점이 있습니다. D의 k승은 k개의 정점을 지나는 최단 경로 길이의 행렬이고, 모든 정점을 지날 수 있는 최단 경로의 길이는 입니다. 즉, D에 주어진 행렬의 크기(길이)만큼 제곱을 해줘야 모든 경우의 수의 최단 경로를 알 수 있다는 것 입니다. 그런데 강의에서 제곱이 아닌 재귀관계식의 형태로 본것이 첫번째로 이해가 잘 되지 않고, 두번째는 제 생각에는 형태로 다른 정점 을 지나면 새로운 경로가 있는 경우가 되야 할것 같은데, 위와 같은 형태로 에서 k가 마치 함수의 매개변수 인것처럼 보이고 승수가 행렬의 인덱스처럼 사용되는 점이 이해가 되지 않습니다. 세번째는 재귀 관계식를 이용해서 을 구해야 최단 경로의 길이를 구할 수 있는데, 로 n번의 연산과정이 있어야 함에도 단 한번의 플로이드 함수를 돌린 리턴값이 가 될 수 있는 이유를 모르겠습니다... 제가 봤을때는 한번 플로이드 함수가 돌리면 하나의 정점을 지난 최단 경로가 나와야 할것 같은데.... 이 세가지가 플로이드 알고리즘에서 이해가 되지 않는 부분입니다! 답변 해주시면 감사합니다!
- 미해결파이썬으로 배우는 알고리즘 기초
n-Queens
안녕하세요~ n-Queens가 잘 이해가 안돼서 질문드립니다. 한번 더 이해하기 쉽게 설명해주세요
- 해결됨파이썬으로 배우는 알고리즘 기초
큰정수의 계산법 강의에서 몫과 나머지
강의를 듣는데 잘 모르겠는 부분이 있어서 질문 드립니다! 이 부분에서 if(len(u)<m): u.append(0) 부분이 잘 이해가 되지 않습니다 제 생각에 만약 길이가 m보다 훨씬 작다면 조건문에 의해 딱한번 append를 하면 return문에서 슬라이싱할때 인덱스 범위를 벗어나는 경우가 생길것 같은데 while문 같은 것을 쓰지 않고 왜 if문으로 한번만 실행되게 코드가 되어있는지 궁금합니다! 항상 좋은강의에 감사드립니다
- 해결됨파이썬으로 배우는 알고리즘 기초
퀵정렬
안녕하세요! 강의 정말 잘 듣고 있습니다! 그런데 퀵정렬 마지막 부분에 조금 이해가 안되는 부분이 있어서 질문드립니다. pivot을 low로 했을때, 잘 정렬된 리스트 일수록 퀵 정렬의 성능이 나빠진다고 하셨는데, 코드를 보면 잘 정렬된 리스트라도 무작위로 정렬된 리스트와 길이가 같다면 단위 연산의 실행횟수는 똑같을것으로 보이는데 왜 성능이 나빠진다고 하는지 궁금합니다. 잘 정렬된 리스트에 수행하지 않아도될 정렬 알고리즘이 수행되어서 비효율적으로 보여서 성능이 나빠졌다고 표현하신건지 궁금합니다!
- 해결됨파이썬으로 배우는 알고리즘 기초
1.1알고리즘 이란 에서 교환정렬 파이썬으로 바꿀때
File "C:\Scheduler_project\Algorithm\Algoritm_1.py", line 40, in <module> exchange(len(S) - 1, S) TypeError: exchange() takes 1 positional argument but 2 were given 이렇게 뜨는데요 흠 이게 도대체 왜 안되는걸까요
- 미해결파이썬으로 배우는 알고리즘 기초
마지막 matrixmult 파라미터 값
C = matrixmult(2, A, B) 이렇게 넣는 게 맞는 것이죠?
- 미해결파이썬으로 배우는 알고리즘 기초
내장함수에 언더스코프의 의미
언더스코프를 사용하는 이유가 따로 있을까요? 개념 이해가 어렵네요 ㅠ 그래도 한 줄 한 줄 상세히 설명해 주셔서 감사합니다.
- 미해결파이썬으로 배우는 알고리즘 기초
def mergesort(S) 부분이 이해가 가지 않습니다.
def mergesort(S)에서 리스트를 U와 V로 2분할 할 때, 즉, mergesort 재귀호출이 아닌 그냥 U = S[0:mid] V = S[mid:n] 이렇게 할 경우 왜 값이 다르게 나타나는지 모르겠습니다.
- 미해결파이썬으로 배우는 알고리즘 기초
이진탐색 vs 합병정렬
이진탐색이 합병정렬보다 낫다는게 잘 이해가 안됩니다. 이진탐색은 sorted list 안에 요소 x 가 있는지 찾는 searching 알고리즘이고 합병정렬은 unsorted list 를 sorted list 로 만드는 sorting 알고리즘이니, 사실상 둘은 비교가 불가능한게 아닌가요 ?
- 미해결파이썬으로 배우는 알고리즘 기초
분할정복에서 큰 정수 곱셈 다른 계산법?
안녕하세요! 이제 분할정복 파트를 완강했습니다. 재밌게 잘 설명해 주셔서 너무 흥미롭게 듣고 있습니다. 큰 정수 곱셈 부분을 듣다가 문득 떠오른 생각인데 이러한 문제를 행렬로 해결할 수 있을지 의문점이 들었습니다. 혹시 행렬을 이용해서 더 빠르게 풀수 있는 방법이 있을까요?
- 미해결파이썬으로 배우는 알고리즘 기초
0번째 왜 자꾸 버리시는건가요?
리스트에서 0번째는 왜 의미없다고 하시는건지 궁금합니다
- 미해결파이썬으로 배우는 알고리즘 기초
리스트의 합
합이 53이 출력되어야 하는 것 아닌가요