묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
인덱스정렬 강의, 04_ListAndIndex질문드립니다.
안녕하세요 강사님인덱스정렬 강의 예제에서 RecalcListCount()라는 함수에 대해 질문드립니다.unsigned int RecalcListCount(void) { unsigned int cnt = 0; USERDATA* pTmp = g_HeadNode.pNext; while (pTmp != &g_TailNode) { ++cnt; pTmp = pTmp->pNext; } return g_listCount; }이 코드에서 cnt로 추가된 자료의 수는 세었지만 이것이 전역 스태틱 변수 g_listCount에 저장되지 않는 거 같는데 이렇게 되어 있는 것이 맞는 것인지 질문드립니다.
-
미해결그림으로 쉽게 배우는 자료구조와 알고리즘 (심화편)
AVL 트리 구현 중 getUnBalanceNode 함수
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의 중 맨 마지막 getUnBalanceNode함수를 구현하실 때 높이가 같은 balanceFactor가 0인 상태일 때 우리는 회전을 하고 대체할 노드도 왼쪽 자식노드의 가장 오른쪽 끝에 있는 자식노드. 즉, 가장 큰 값의 노드를 선택했기 때문에 오른쪽으로 설정해주는 것이다.대체할 노드가 무엇을 가르키는 것인지 모르겠습니다.왼쪽 자식노드는 이미 부모 노드의 작은 값인데, 해당 자식의 가장 끝에 있는 값이라도 부모 노드보다 작다고 생각되는데, 가장 큰 값이라고 표현된 이유가 있을까요?강의 중 어느 부분에서 "가장 큰 값을 선택"했는지 못 찾겠어서 질문드립니다!
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
1-7. 4:30 에서 N*N이 아닌이유가 뭔가요?
1-7. 4:30 에서 N*N이 아닌이유가 뭔가요? 갑자기 26을 상수취급하는 이유를 모르겠어요.. 1-6에서는 N*N이었던 것 같은데요... 1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?어떤 알고리즘을 학습하고 계신가요?여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분어느 부분에서 막히셨나요?코드의 어떤 로직이 이해가 안 되시나요?어떤 개념이 헷갈리시나요? 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요?에러가 발생했다면 어떤 에러인가요?현재 작성하신 코드를 공유해주세요 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
공간복잡도 질문입니다!
공간복잡도가 N인 경우는 큰 차이가 없다고 이해했습니다.예제 코드에서도 29, 30 처럼 N인 경우를 확인하였습니다.그렇다면 공간복잡도가 N^2인 경우는 어떤 예제 코드가 될 수 있을까요??시간복잡도는 이해가 갔는데(ex. 이중for문) 공간복잡도가 N^2인 경우는 어떻게 되는지 궁금합니다!
-
해결됨김영한의 실전 자바 - 중급 2편
[강의록 오타] 9. 컬렉션 프레임워크 - Map, Stack, Queue
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[강의록 오타]대상 강의록: 9. 컬렉션 프레임워크 - Map, Stack, Queue.pdf페이지: p.6 상단내용:(기존) Map의 값 목록을 중복을 허용한다.(수정) Map의 값 목록은 중복을 허용한다.영상 잘 보고 있습니다. 너무 재밌어요 영한님!
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
트리 - 목표문제 11725 메모리 초과
안녕하세요트리 목표 문제 11725 예제를 백준에서 돌렸을때 메모리 초과가 발생합니다. 혹시 메모리 초과가 나지 않게 푸는 방법은 없을까요?
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
2-6 get_linked_list_sum 형변환으로 풀었는데
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 2-6어떤 알고리즘을 학습하고 계신가요? linked_list여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분어느 부분에서 막히셨나요? 막힌건아니구..코드의 어떤 로직이 이해가 안 되시나요? 이해도되는데어떤 개념이 헷갈리시나요? 내 풀이는 정석이 아닌가싶어서 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요? 생각을 많이함에러가 발생했다면 어떤 에러인가요? 에러 아님현재 작성하신 코드를 공유해주세요def get_linked_list_sum(linked_list_1, linked_list_2): concat_value_1 = "" concat_value_2 = "" cur_1 = linked_list_1.head cur_2 = linked_list_2.head while cur_1 is not None: concat_value_1 += str(cur_1.data) cur_1 = cur_1.next while cur_2 is not None: concat_value_2 += str(cur_2.data) cur_2 = cur_2.next return int(concat_value_1) + int(concat_value_2)강사님처럼 10을 곱해주는게아니라str로 형변환해서 그냥 붙힌다음에다시 int로 파싱해서 리턴했는데...이건 너무 야매풀이일까요..ㅠ 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
-
미해결김영한의 실전 자바 - 중급 2편
UnitPrinter.printV2 와일드카드 작성 시
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]public static void printV2(Shuttle<? extends BioUnit> shuttle) { shuttle.showInfo(); } 이 부분에 와일드카드가 BioUnit 을 extends 해야 한다고 명시적으로 작성해 주고 있는데 Shuttle 클래스에서 이미 <T extends BioUnit> 을 하고 있기 때문에 와일드카드는 단순하게 ? 만 사용해도 괜찮은 걸까요?다른 개발자가 사용할 경우에 좀 더 명시적으로 확인시켜주기 위해 적은거라고 이해해도 되는 건지 궁금합니다. public static void printV2(Shuttle<?> shuttle) { shuttle.showInfo(); }이렇게 코드를 작성한 이후에 여러 테스트를 해봤는데 Shuttle 클래스를 만들때 <T extends BioUnit> 에 걸려서 Integer나 Object 등 다른 타입은 사용할 수 없더라구요.
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
예제는 어디서 다운로드 받을 수 있나요?
안녕하세요 강사님, 현제 자료구조 강의를 수강하고 있습니다. 동영상에서 예제에 대해서 설명하시는데, 혹시 예제 코드는 어디서 다운받을 수 있을까요?
-
해결됨김영한의 실전 자바 - 중급 2편
[수정 건의] NodeMain3의 add(Node node, String param) 메서드에 대한 수정 건의
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]대상 강의록: 4. 컬렉션 프레임워크 - LinkedList.pdf의 p.12대상 소스 파일: NodeMain3add(Node node, String param) 메서드건의 내용:해당 부분은 아직 LinkedList에 대한 제네릭 도입 전이므로 Node 클래스에서도 item의 타입을 Object로 사용하고 있습니다.public class Node { Object item; Node next; public Node(Object item) { this.item = item; } ... }따라서 add 메서드 또한 추가할 데이터인 param을 String이 아닌, Object 타입으로 설정해야 수강생들의 이해가 쉬울 것이라고 생각합니다.// 기존 강의록 코드 private static void add(Node node, String param) { Node lastNode = getLastNode(node); lastNode.next = new Node(param); } // 수정 제안 코드 <<수정부분: String -> Object>> private static void add(Node node, Object param) { Node lastNode = getLastNode(node); lastNode.next = new Node(param); }
-
해결됨김영한의 실전 자바 - 중급 2편
강의록 오타 제보
[질문 내용]파일: 4. 컬렉션 프레임워크 - LinkedList.pdf페이지/위치: 4페이지/NodeMain1 코드11페이지/NodeMain3 코드오타 내용: System.out.println("모든 노트 탐색하기");수정 내용: System.out.println("모든 노드 탐색하기");
-
해결됨코딩테스트 [ ALL IN ONE ]
Dynamic Array 의 size 정보가 저장되는 곳
안녕하세요 좋은 강의 감사드립니다! 강의 9:20"우리는 Dynamic Array의 size를 미리 알고 있기 때문에"문장에서 궁금증이 생겼습니다. 우리는 Dynamic Array의 size를 머리속에 기억 하고 있기 때문에 a.append(4) 를 했을때 O(1)인것을 알지만컴퓨터의 경우 a.append(4)를 했을때 Dynamic Array의 size를 어떻게 알고 값을 저장할까요?? 따로 저장이 될까요? size를 아는 경우 배열 포인터(배열 변수)에 저장된 초기 주소값 + size*Byte(자료형에 따라 다름) 으로 바로 접근 가능 하여 O(1) 이라고 납득이 되지만 size를 모를 경우 마지막 데이터가 있는 주소값으로 바로 가려면 array 를 전부 훑어서 O(n)이 될 수 있지 않을까 궁금했습니다. a 라는 배열 포인터에 초기 주소값과 size 정보를 저장해놓는다.배열 포인터가 아닌 다른곳에 정보를 저장한다.array를 전부 훑는건 O(1)이다. 1번, 2번, 3번 중에 어떤 걸까요?? 그리고 검색하다 size와 capacity 에 대한 내용을 봤는데capacity가 Dynamic array에서 처음 선언할때 비어 있는 index를 포함한 크기 로 알고있습니다. 위 제가 판단한것에서 1번, 2번 일경우 size 뿐만 아니라 capacity 정보도 저장해놔야 할것 같은데 저장한다면 어디에 저장 하는 걸까요?? 저장을 안한다면(3번) 직접 빠르게 훑어보고 값을 추가 or 삭제 하는 걸까요?? 강의 후반부에 설명해 주시는 내용이라면 죄송합니다..항상 감사합니다!
-
해결됨SW 역량테스트 합격하기 A형 with C++ (Advanced Algorithm)
안녕하세요 선생님 코드트리 원자충돌(2020 하반기 오전 2번)에서 질문 있습니다.
안녕하세요 선생님원자 충돌(코드트리, 2020 하반기 오전 2번)에서 질문 있습니다.처음에 짤때 낚시왕(BOJ 17143)을 떠올리고 아래 처럼 코드를 짰는데 오답이 나옵니다.int dir=d; int dist = s%n; int sx = x; int sy = y; for(int cnt_k=0;cnt_k<dist;cnt_k++){ int nx = sx+dx[dir]; int ny = sy+dy[dir]; if(nx<0) nx=n-1; if(nx>=n) nx=0; if(ny<0) ny=n-1; if(ny>=n) ny=0; sx = nx; sy = ny; }이 부분만 선생님의 코드로 바꾸면 문제가 없어서 이 부분이 틀린 것이 확실한데 왜 오답인지 모르겠습니다 ..좋은 강의해주셔서 항상 감사드립니다 !.
-
미해결김영한의 실전 자바 - 중급 2편
제네릭 out 반환
[질문 내용]여기서 왜 객체에서 유닛을 따로 꺼내줘야만 관련 메서드를 사용할수 있는건가요? Shuttle<T extends BioUnit>으로 Shuttle도 상한타입도 지정해줬음에도 한번 유닛으로 반환받아야 메서드를 쓸 수 있는 이유가 헷갈립니다
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
2- 6 보너스 요세푸스 문제
1. 현재 학습 진도 링크드 리스트를 학습하고 있습니다2. 어려움을 겪는 부분보너스 문제인 요세푸스 문제를 '링크드 리스트'를 활용하여 푸는데 어려움을 겪고 있습니다 ㅠ 3. 시도해보신 내용링크드 리스트의 보너스 문제는 링크드 리스트를 학습하는데 도움이 될만한 문제라고 생각하여 풀이하고 있는데 어려움을 겪고 있습니다. class Node: def __init__(self, data): self.data = data self.next = None class CircularLinkedList: def __init__(self): self.head = None def append(self, data): new_node = Node(data) if not self.head: self.head = new_node self.head.next = self.head else: cur = self.head while cur.next != self.head: cur = cur.next cur.next = new_node new_node.next = self.head def delete(self, prev, cur): if cur == self.head: if cur.next == self.head: # 마지막 노드일 경우 self.head = None else: self.head = cur.next prev.next = cur.next def print_all(self): if not self.head: return [] result = [] cur = self.head while True: result.append(cur.data) cur = cur.next if cur == self.head: break return result def josephus_problem(n, k): circle = CircularLinkedList() for i in range(1, n + 1): circle.append(i) result = [] cur = circle.head prev = None while circle.head: for _ in range(k - 1): prev = cur cur = cur.next result.append(cur.data) circle.delete(prev, cur) cur = prev.next if prev else None return result # 입력 처리 n, k = map(int, input().split()) result = josephus_problem(n, k) print("<" + ", ".join(map(str, result)) + ">")위와 같이 링크드 리스트의 개념을 활용하여 문제를 풀다가 어려워서 chatGPT의 도움을 받아서 변형하여 풀어봤는데도 지속적으로 런타임에러가 나는 상황입니다.이 문제를 링크드리스트로 풀 수 없는 문제인지 어떤 부분이 잘못된 것인건지 잘모르겠습니다.또한 만약 풀기 어려운 문제라면, 이정도 수준의 링크드 리스트를 활용하는 문제는 나오지 않는 것인지 이정도 수준으로 연습하면 좋을 지도 궁금합니다! 감사합니다 🙂
-
해결됨코딩테스트 [ ALL IN ONE ]
노션공유가 안된듯 합니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. icopyx@gmail.com확인 부탁 드립니다.
-
미해결김영한의 실전 자바 - 중급 2편
anotherCard.suit이 가능한 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]public int compareTo(Card anotherCard) { // 숫자를 먼저 비교하고, 숫자가 같으면 마크를 비교 if (this.rank != anotherCard.rank) { return Integer.compare(this.rank, anotherCard.rank); } else { return this.suit.compareTo(anotherCard.suit); } }이 코드에서 priavte으로 선언된 rank와 suit에 anotherCard.getRank() 나 anotherCard.getSuit() 으로 접근하지 않고 anotehrCard.rank 와 anotherCard.suit 로 바로 접근할 수 있는 이유가 뭔가요??
-
미해결김영한의 실전 자바 - 중급 2편
해시 알고리즘 9 - 해시 충돌 구현의 마지막 코드 도식화
안녕하세요! 제가 이해하고 있는 부분이 맞는지 궁금합니다.LinkedList<Integer>[ ] buckets = new LinkedList<>[ ] 를 하면, LinkedList<Integer> 타입을 갖을 수 있는 배열이 생성되고, buckets[0] , buckets[1] .. .. 처럼 인덱스 번호를 이용해서 접근가능합니다. 여기서 궁금한점은 LinkedList<Integer> 타입으로 구성된 각 배열들은 LinkedList<Integer>의 인스턴스가 생성된것이 아니라, 단지 LinkedList<Integer>의 타입을 갖을 수 있는 참조 변수 인건가요?? 그 후에 각 참조변수 안에서 new LinkedList<>의 코드를 사용해서, LinkedList<>의 인스턴스가 생성되어 연결된것인가요??그렇기 때문에, add 메소드에서, buckets[1].add와 같은 문장이 생성될 수 있었는지 여쭤보고싶습니다.
-
미해결김영한의 실전 자바 - 중급 2편
배열에서의 시간복잡도와 Object
안녕하세요 . int 타입의 경우 배열을 생성하였을때 int는 4바이트로 메모리크기가 정해져있고 그에 따라 (배열주소 * int의크기(4)) 로 O(1) 로 찾을 수 있다고 이해했습니다. 그럼 그렇다면 Object [] 배열의 경우에도 동일하게 동작하나여? Object나 다른 참조타입의 경우에도 메모리에서 각각의 인덱스의 참조주소가 동일한 크기를 가지고 배열이 생성될까요?
-
미해결김영한의 실전 자바 - 중급 2편
섹션 6 -문제와 풀이 2 구조도 그림
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요!섹션 6 -문제와 풀이 2 에 나온 문제를 간략하게 그림으로 도식화해보았습니다.제가 이해하고 있는게 맞는지 확인 부탁드려도 괜찮을까요?감사합니다.