묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
알고리즘 공부 관련 질문
안녕하세요 알고리즘 공부를 오늘 시작하였습니다. 파이썬이랑 C++사이를 갈등하고 있습니다. 대학교 강의는 C++인데 파이썬으로 과제나 시험응시가 가능하다고 들었습니다. 파이썬으로 공부하고 싶은데 C++이랑 파이썬이랑 개념이 많이 다른가요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
선생님 코드리뷰를 부탁드립니다 :)
const solution = (data) => { let answer = Number.MIN_SAFE_INTEGER; let raw = column = diagonal = reDiagonal = 0; for(let i=0; i<data.length; i++) { raw = column = 0; diagonal += data[i][i]; reDiagonal += data[i][data.length-1-i]; for(let j=0; j<data.length; j++) { raw += data[i][j]; column += data[j][i]; } answer = Math.max(answer, raw, column); } answer = Math.max(answer, diagonal, reDiagonal); return answer; }
-
미해결
다이나믹 프로그래밍에서 도무지 이해가 안가는 부분이 있어서 질문드립니다ㅠㅠ
dp 문제 중 효율적인 화폐 구성이라는 문제가 있는데요. k개의 화폐로 n원을 만들 때 가작 작은 화폐 개수를 구하는 문제입니다. 예를 들어, k = 2, 3, 5로 구성되어 있고, n = 7, 정답이 a(n)이라면, 7 = 2 + 5이므로, a(7) = 2 개가 되는 문제입니다. 여기서 점화식은 a(n) = min( a(n), a(n-k) + 1 ), a(n-k) + 1: 화폐 k원을 반드시 사용하는 경우를 의미 위의 예시에 점화식을 적용해본다면, 시작 전 a(n)을 모두 INF 값으로 초기화, a(7) = min( a(7), a(7-2)+1, a(7-3)+1, a(7-5)+1 ) = min( a(7), a(5)+1, a(4)+1, a(2)+1 ) 여기까지는 이해가 됐는데요, 설명이나 코드를 찾아보면 반복문의 위치가 제가 생각한거랑 반대로 돼있더라구요ㅠㅠ 저는 n에 대한 루프 안에 k의 루프가 와야 위의 점화식과 같은 방식이 된다고 생각했지만, 설명에서는 k = 2일 때 n=0~7까지 a(n)을 쫘르륵 구하고, 그다음 k = 3일 떄 쫘르륵, 마지막 k=7일 때 쭉 구해서 최종답을 구합니다. 왜 반복문의 위치가 이렇게 바뀌는 건가요?? 아시는 분 답변 주시면 정말 감사하겠습니다ㅠㅠ
-
미해결
다익스트라 알고리즘 질문
import heapq def solution(N, road, K): n_road = [500001] * (N+1) n_road[1] = 0 sorted_road = [[] for i in range(N+1)] for road_num in road: sorted_road[road_num[0]].append([road_num[2], road_num[1]]) sorted_road[road_num[1]].append([road_num[2], road_num[0]]) # print(sorted_road) q = [] heapq.heappush(q, [0, 1]) while q: cur_node = q.pop() for dist, b in sorted_road[cur_node[1]]: if dist + n_road[cur_node[1]] < n_road[b]: # 1에서 cur로, cur에서 b로, 1에서 b로 n_road[b] = dist + n_road[cur_node[1]] q.append([n_road[b], b]) return len(list(filter(lambda x: x <=K, n_road))) 다익스트라 알고리즘을 구현하는데 의문점이 생겨서 여기 질문을 남깁니다. 1. 다익스트라 알고리즘에서 인접한 거리의 노드를 선택하기 위해서 heap 자료구조를 사용하는데 꼭 인접한 거리의 노드를 선택해야할 이유가 있을까요? 제가 원래 heap을 사용했던 python 코드를 단순히 배열로 바꿔서 가장 인접한 거리의 노드부터 선택하지 않음에도 불구하고 작동이 잘 되어서 질문을 남깁니다. - 제가 구현한 코드에서는 인접한 거리를 방문하든 안하든 결국 모든 노드들을 방문하여서 차이가 없다고 생각되었습니다. 2. 위와 같은 방법의 시간 복잡도는 어떻게 되는것인가요? 아직 시간복잡도 계산이 미숙해서 그런지 잘 모르겠습니다.
-
해결됨자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
오름차순 정렬 시
안녕하세요 강사님 알고리즘 강의 덕분에 수월하게 공부하고 있습니다. 두 배열 합치기 강의에서 간단한 Two Pointers Algorithm 알려주셨는데 그렇다면 앞으로 다른 유형의 문제들에서도 오름차순으로 정렬을 해야할 경우에 Two Pointers Algorithm을 사용할 수 있다면 sort를 사용하는 것 보다 Two Pointers Algorithm을 사용하는 것이 효율성 측면에서 조금 더 좋은 방법인가요???
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
파이썬 알고리즘 문제풀이 선수지식 강의자료 요청
안녕하세요. 선생님의 좋은 강의 잘 듣고 있습니다. 파이썬 선수지식에서 강의하시는 강의자료는 혹시 없으실까요? 저는 문과생이라 파이썬 코딩이 낯설지만 잘 따라가고 있는 중입니다. 그런데 강의자료가 없으니 정리하는데 좀 오래걸려서요 부디 강의자료를 공유해주시면 감사하겠습니다. 제~ 이메일 주소는 1104py@naver.com 입니다. 답변 주시면 감사하겠습니다.
-
미해결[하루 10분|C++] 누구나 쉽게 배우는 C++ 프로그래밍 입문
질문 visual studio 2019버전 max함수 헤더파일없이
안녕하세요 원래 max함수를 쓰기위해 include<algorithm>을 헤더파일에 입력해야 STL함수 max()함수를 쓸수있다고 알고있는데 2019년도 버전은 왜 #include <iostream> using namespace std; int main() { cout << "더 큰건 " << max(1, 2) << "입니다." << endl; } 이렇게만 해도 컴파일되는건지 궁금합니다. 알려주세요 ㅜ
-
미해결C 와 C++ 을 동시에 배워보자 - 두들낙서의 C/C++
visual studio 2019버전 max함수 헤더파일없이
안녕하세요 원래 max함수를 쓰기위해 include<algorithm>을 헤어파일에 입력해야 STL함수 max()함수를 쓸수있다고 알고있는데 2019년도 버전은 왜 #include <iostream> using namespace std; int main() { cout << "더 큰건 " << max(1, 2) << "입니다." << endl; } 이렇게만해도 컴파일이 되는지 궁금합니다