묻고 답해요
143만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
질문
안녕하세요. 덕분에 삽입정렬 마스터했습니다. 또한 다른 쪽 우선 공부해보고 싶은 곳이 있는데, 만약 A=(1, 11, -2, 12, 8, 9)이고 x=10이라면, 알고리즘은 (1, 9) 또는 (-2, 12) 같은 쌍을 찾아내야 할때를 공부하고 싶은데, 어떤 부분을 공부하면 될까요? 기본인지 심화에 있는지도 말씀해주시면 감사드리겠습니다.
-
해결됨코딩테스트 [ ALL IN ONE ]
postorder 문제 문의드립니다!
안녕하세요!현재 postorder 트리 문제 풀었는데요!선생님이 공유해주신 코드가class Solution(object): def lowestCommonAncestor(self, root, p, q): if root == None: return None left = self.lowestCommonAncestor(root.left, p, q) right = self.lowestCommonAncestor(root.right, p, q) if root == p or root == q: return root elif left and right: return root return left or right이렇게 인데 class에 대해서 잘 몰라서 그런지 이후로 어떻게 해야 답이 나오는지 모르겠습니다ㅜㅜresult = Solution([3, 5, 1, 6, 2, 0, 8, None, None, 7, 4], 6, 4)이렇게 했는데 에러가 나는데 어떻게 해야할까요?++ 선생님 파이썬 전자책으로 공부하고 했는데, 제가 잘 못찾아서 그런지 그때 클래스에 대해서 보지 못한것 같은데 설명해주셨으면 좋겠어요🙏🙏
-
미해결그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
질문
혹시 이 강의에서 binary search 에 대해서도 가르쳐주시나요 ?
-
미해결그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
자바
안녕하세요. 저는 지금 자바로 공부하고 있는 학생인데, 이 강의는 자바스크립트를 기준으로 공부가 진행되더라구요. 자바를 공부하는 사람이 이 강의를 봐도 괜찮나요?아니면 실현하는 코드가 완전히 다른가요?
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
연결리스트 삭제 시 헤드노드 NULL인 경우 예외처리의 필요성 재고
연결리스트 삭제 시 헤드노드가 NULL인 경우를 고려해야 하는 이유가 궁금합니다. 삭제 전에 삭제할 노드를 미리 찾는 과정이 수반되는데, 그 과정은 헤드노드가 NULL값이 아니라는 것을 전제로 이루어집니다. 따라서 삭제할 노드를 찾아서 삭제를 진행하는 단계까지 왔다는 것은 헤드노드가 NULL이 아니라는 것을 전제로 한다고 볼 수 있습니다. 그럼에도 불구하고 삭제를 진행하는 함수에서 헤드노드가 NULL인 경우를 고려하시고 이에 대한 예외처리 코드를 작성하셨는데, 혹시 그에 대한 이유가 있을까요?
-
해결됨코딩테스트 [ ALL IN ONE ]
수강생인데 교재 공유좀 해주세요.
안녕하세요. 저번에 교제 공유 신청했는데 2일째 답변이 없으셔서 빨리 신청한 이메일로 공유좀 부탁드려요
-
미해결이득우의 꼭 배워야하는 게임 알고리즘
움직이는 물체에 대한 쿼드, KD트리 효율 질문
강의 잘들었습니다 😊😊 강의를 들으면서 한가지 의문이 생겼는데요 쿼드트리나 KD트리를 이용하면 다수의 물체에 대한충돌체크에 쓰이면 좋을거 같다는 생각을 했습니다. 강의에서는 고정된 물체에 대해서 트리를 구축하고 질의(Query)를 실행하는데요 만약 물체가 움직이게 된다면 위치값이 계속바뀌닌까 이 알고리즘을 사용할수 없을수도 있을거 같았습니다. 움직일때마다 트리를 재구축 해줘야하닌까 더 비효율적이지 않을까요?? 움직이는 다수의 물체에 대해 충돌체크를 하려면쿼드트리를 사용하고 물체가 이동할때마다트리 노드가 들고있는 물체 목록을 옮겨 다니는 로직을 만들어야 할까요?
-
해결됨코딩테스트 [ ALL IN ONE ]
템플릿 코드에서 if cur_v not in costs: 부분에 의문이 있습니다.
def dijkstra(graph, start, final): # 각 노드들의 비용을 저장 costs = {} # 우선순위 큐 pq = [] # (해당위치까지 가는 총 비용, 노드위치) heapq.heappush(pq, (0, start)) while pq: # heappop을 하면 가장 작은 원소가 튀어 나온다. cur_cost, cur_v = heapq.heappop(pq) # 방문하지 않은 백터 일때만 작동 if cur_v not in costs: # costs[cur_v] = cur_cost for cost, next_v in graph[cur_v]: next_cost = cur_cost + cost heapq.heappush(pq, (next_cost, next_v)) return costs[final]해당 템플릿 코드중에서 if cur_v not in costs: costs[cur_v] = cur_cost어떻게 costs에 cur_v가 없다는 것 만으로 바로 최적의 경로라고 확신할 수 있는지 의문이 있습니다. heapq의 성질덕에 cur_cost, cur_v가 '지금까지 heap에 넣은 값들중에' 가장 작은 값 인거는 알겠는데 다른 경로를 통해 뒤늦게 heap에 들어간 값이 이전에 costs에 not in이여서 넣은 값보다 작은 경우도 있지 않나요??뭔가 제 생각에 자연스럽지 않아서 다른 코드들을 찾아보니 아래와 같이 제가 생각한 조건대로 대소 비교를 해보고 넣더군요.def dijkstra(graph,start,end): costs = {vertex:111111 for vertex in graph} pq = [] heapq.heappush(pq,(0,start)) while pq: cur_cost, cur_v = heapq.heappop(pq) if costs[cur_v] < cur_cost: continue for cost, next_v in graph[cur_v]: next_cost = cur_cost + cost if next_cost < costs[next_v]: costs[next_v] = next_cost heapq.heappush(pq, (next_cost, next_v)) return costs[end] " '지금까지 heap에 넣은 값들중에' 가장 작은 값 " 이 아니라 앞으로 나올 값 중에 가장 작은 근거가 있을까요??- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
2강 약수 문제 질문
1번 질문: 2번 문제와 백준의 14232번이 어떻게 같은 문제인지 이해가 가지 않습니다.다음은 강의 자료입니다:문제 2. 약수 빠르게 구하기 ( #1978, #11653, #14232 )숫자 N이 주어진다.이 숫자의 약수가 총 몇 개가 포함되어 있는지 계산하고 싶다.약수의 개수와, 약수들을 모두 출력하는 프로그램을 작성하시오.15 23 5입력값과 출력값을 보면 백준 14232번을 가져오신 것 같은데 약수를 출력하는 문제가 해당 백준의 문제와 어떻게 같은 출력값이 나오는지 이해가 가지 않습니다. 14232번은 다음과 같습니다:희대의 도둑 효빈이는 세계 최고의 보석가게 영선상에 잠입할 계획이다. 이 영선상은 최고의 보석가게답게 최고의 보안장치를 두고 있는데, 이 보안장치를 해제하지 않는다면 보석을 여러 개 훔쳐갈 시, 보석끼리 달라붙으며 무게가 모든 보석들의 곱으로 늘어난다.효빈이는 이 보안장치를 해제할 수 없기 때문에, 차라리 곱해진 대로 최대한 많은 보석들을 가져오기로 계획했다. 효빈이는 한번에 k라는 무게를 들 수 있으므로, 딱 k만큼의 무게만큼의 보석을 가져오고 싶은데, 그 때 보석들의 최대 개수를 알고싶다.영선상에는 세계 최고의 보석가게답게 모든 무게의 보석들이 매우 많이때문에, 훔쳐가는 보석이 부족할 일은 없다. 다만 모든 보석들은 무게가 1보다 크다.효빈이는 이제 영선상에 잡입할 계획을 다 세웠다. 하지만 무슨 보석들을 훔쳐올지 결정하지 못하였는데, 효빈이를 대신하여 훔쳐올 보석들을 결정해주자.제가 생각하기로는 한번에 또한 강의자료에 있는 2번 문제의 정답이 해당 문제에 해당하지 않는 것 같은데 이 코드는 어디에 해당하는 코드인지 궁금합니다. 감사합니다
-
해결됨코딩테스트 [ ALL IN ONE ]
말씀하신 김왼손님의 4시간 코스 듣고 왔는데 수업 진도를 못따라가겠습니다.
해당 수업의 선수 수업은 따로 올라온게 없을까요? 김왼손 기초 파이썬과 선생님 강의의 간극을 매울만한 강의를 추천해주시면 감사하겠습니다,
-
미해결Do it! 알고리즘 코딩테스트 with JAVA
혹시 다른 ide에서 잘 돌아가는 프로그램이
백준에서는 안 돌아갈수도 있나요?다른 ide에서는 잘 돌아가는데 백준에 제출하니까 계속 틀렸다고 하네요!
-
미해결Do it! 알고리즘 코딩테스트 with JAVA
내림차순으로 정렬하기 강의에서..
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); int A[] = new int[str.length()]; for(int i=0; i<str.length(); i++){ A[i] = Integer.parseInt(str.substring(i, i+1)); } for(int i=0; i<str.length(); i++){ int Max = i; for(int j = i+1; j<str.length(); j++); { if(A[j]>A[Max]) { Max = j; } } if (A[i] < A[Max]){ int temp = A[i]; A[i] = A[Max]; A[Max] = temp; } } for (int i=0; i<str.length(); i++){ System.out.println(A[i]); } } } 안녕하세요 강의 잘 보고 있어요.강사님이 치라는 대로 코드를 따라 쳤는데 계속 오류가 뜨네요?? (굵게 표시한 부분)cannot find symbol 오류인데.. 분명 j와 max를 잘 정의해 주었는데 왜 이러는 걸까요?
-
해결됨코딩테스트 [ ALL IN ONE ]
강의자료 공유 요청 드립니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강사님 강의 너무 잘 보고 있습니다.교재 공유 요청 드립니다!
-
해결됨코딩테스트 [ ALL IN ONE ]
과제형 코딩테스트 비율은 얼마나되나요?
알고리즘 코테 말고 과제형식으로 진행이 되는것은 비율이 얼마나 되는지 알려주실 수 있나요? 대략 느낌상 이렇다 정도만 얘기해주셔도 괜찮습니다
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
1강 숫자야구 문제 질문
안녕하세요,알려주신 대로 코드를 작성하였는데 결과가 계속 안나오네요. 혹시 어떤 부분에서 문제가 있는지 알 수 있을까요?n=int(input())result=0 # 가능한 결과의 개수mycon=[list(input().split()) for _ in range(n)]for a in range(1,10): for b in range(1,10): for c in range(1,10): count=0 if a==b or b==c or a==c: continue for i in range(n): strike_count=0 ball_count=0 #nowcon은 각 조건을 담은 리스트 nowcon=mycon[i] if str(a)==nowcon[0][0]: strike_count+=1 if str(b)==nowcon[0][1]: strike_count+=1 if str(c)==nowcon[0][2]: strike_count+=1 if str(a) in nowcon[0]: ball_count+=1 if str(b) in nowcon[0]: ball_count+=1 if str(c) in nowcon[0]: ball_count+=1 ball_count-=strike_count if strike_count==nowcon[1] and ball_count==nowcon[2]: count+=1 if count==n: result+=1 print(result) 감사합니다
-
미해결Do it! 알고리즘 코딩테스트 with C++
백준 11404 플로이드 문제 질문있습니다.
입력을 받을 때 for (int i = 0; i < m; ++i) { int a, b, c; cin >> a >> b >> c; for (int i = 0; i < m; ++i) { int a, b, c; cin >> a >> b >> c; if (adj[a][b] > c) adj[a][b] = c;위처럼 입력을 받았는데요여기서 adj[a][b] = c;이게 빠지면 틀렸다라고 나오는데 왜 틀린것인지 이해가 안가는데 설명 부탁드립니다..
-
미해결Do it! 알고리즘 코딩테스트 with C++
문제 85번 질문드립니다
#include<iostream>using namespace std;int T[16];int P[16];int D[16];int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); //freopen("input.txt", "r", stdin); int N; cin >> N; for (int i = 0; i < N; i++) { cin >> T[i] >> P[i]; } for (int i = N - 1; i >= 0; i--) { if (i + T[i] > N) D[i] = 0; else { D[i] = max(D[i + 1], P[i] + D[i + T[i]]); } } cout << D[0];}여기서 초기화할 때 왜 0으로 하면 14프로까지 갔다가 틀렸습니다가 나오는지 잘 모르겠습니다 'i + T[i] > N' 다음 조건이 성립하면 항상 점화식의 값이 0이 나오는 것이 아닌가요?
-
해결됨코딩테스트 [ ALL IN ONE ]
강의 자료에 대해서 질문 있습니다.
안녕하세요! 노션 공유를 받았는데 ([EBook] 개발자 취업 비밀노트) << 이 교재에 대해서 공유를 받았습니다. 혹시 이게 강의 교재인지 아니면 잘못 공유 받은 것 인지 궁금하여 여쭤봅니다!
-
해결됨코딩테스트 [ ALL IN ONE ]
스택으로 DFS 구현하는 방법
안녕하세요. 지금 그래프 이론 파트를 보고 있는데요! 혹시 DFS를 스택으로 구현하는 거랑 델타 탐색에 대한 부분도 강의에 있는지 궁금합니다이론 파트 먼저 보고 문제 푼 후에 풀이 영상 보려고 남겨뒀는데 혹시 문제 풀이 쪽에서 설명을 해주시면 미리 보고 정리해두고 싶어서요
-
해결됨코딩테스트 [ ALL IN ONE ]
트리 구현 방식에 대한 질문
안녕하세요.트리를 클래스로 구현하는 것과 배열로 구현하는 것에 차이가 있나요? 이제 막 코딩테스트를 처음 공부하고 있는데 구현 방법에 따라서 활용도가 어떻게 다른지 궁금합니다.제가 짧게 혼자 공부햇을 때에는 배열로 트리를 만들고 인덱스를 기준으로 부모와 자식을 찾아가는 방식으로 공부했는데요.강사님 강의를 들어보니 클래스로 구현하는게 훨씬 직관적으로 보여서요.이런 구현 방식들이 각각 어떻게 장단점이 있는지 궁금합니다.제가 정리하기로는 배열은 완전 이진 트리만 구현이 가능하고 부모와 자식을 찾아가기에 용이하다... 클래스 형식으로 트리를 구현하면 루트부터 시작할 때 용이하다...라고 정리를 햇는데 잘 이해하고 있는 건가요?배열로 트리를 구현하게 되면 bfs랑 dfs 탐색을 할 때에도 인덱스를 타고 타고 넘어가도록 코드를 작성하면 되나요?그리고 용어들이 조금 헷갈리는데 연결리스트로 트리를 구현하는 방식이 클래스로 구현하는 것과 같은 의미인가요..?