묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
배열 출력
만약 int []A = { 1, 3, 9, 4 } 가 있을때,A={ 1, 3, 9 ,4 } 를 출력하고 싶으면 어떻게 해야 출력할 수 있나요? 혹은 for 중첩문의 반복 조건을 통해 선택정렬을 해서( 1, 9) 와 ( 3, 4 ) 에 해당하는 것만 출력하고 싶을때는 어떻게 해야 출력할 수 있나요? 그리고 그건 어디에서 배울 수 있나요?
-
미해결그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
질문
수업들어보니 자바스크립트의 let 이 자바의 int 같은데, 만약 int min = i ; 선언하고 아래 if ( arr[j] < arr[min]) {min = j ;}라고 하셨는데, 그러면 변수 min 에는 j 값이 저장 되기는 하지만 int 는 지역 변수라 if 문 안에서 저장된 int min 의 값이 if 문 밖으로 나가서는 for 문을 실행하여 다시 j 가 하나 더해져서 반복 실행 되었을때 min 의 값은 다시 i 로 초기화 되는건가요? 아니면 j 로 바뀐건가요 ? -제가 아는 지역 변수에 대한 설명입니다 지역 변수는 선언된 함수나 메소드 내에서만 접근이 가능하고, 해당 함수나 메소드의 실행이 끝나면 그 범위를 벗어나서 접근할 수 없습니다.
-
미해결그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
질문
안녕하세요. 덕분에 삽입정렬 마스터했습니다. 또한 다른 쪽 우선 공부해보고 싶은 곳이 있는데, 만약 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] 개발자 취업 비밀노트) << 이 교재에 대해서 공유를 받았습니다. 혹시 이게 강의 교재인지 아니면 잘못 공유 받은 것 인지 궁금하여 여쭤봅니다!