묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 중급 2편
iterator.next() 질문드립니다 !
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]4:47초에서 iterator.next()가 '현재 데이터를 반환하고 다음으로 이동'한다고 하셨고, 그것이 '다음 데이터를 반환한다' 라는 말씀이라 하셨습니다.제가 이해가 잘 안되는데, 현재 데이터를 반환하고 다음으로 이동하는 것은 리턴값이 현재 값 이라는 것일테고다음 데이터를 반환하는 것은 리턴값이 다음 데이터라는 말일텐데, 혹시 어느 것이 맞을까요 ..?
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
4-5 그래프 강의 내용에 대해 질문드립니다.
안녕하세요!'4-5 그래프' 강의 내용 중에 '인접 리스트'를 사용해 그래프를 표현하는 경우 공간복잡도가 최악의 경우에도 O(N)이라고 설명을 해주셨는데요!그래프의 모든 노드가 다른 모든 노드에 연결되어있는 경우라면 딕셔너리 안에 N개의 키와 각각의 키에 크기 N-1의 1차원 배열이 들어가게 되니, 결국 N*(N-1) 만큼이 공간을 차지하여 최악의 경우 2차원 배열과 동일하게 O(N^2)의 공간복잡도를 가지게 되는 것은 아닌가 하는 생각이 들었는데요,인접 리스트를 사용할 때 최악의 경우 어떻게 O(N)의 공간복잡도가 나오게 되는지 궁금합니다!그리고, 일반적인 경우에는 모든 노드가 연결되어 있지는 않겠지만, 항상 이러한 최악의 경우도 고려하면서 문제를 풀어야 할지도 궁금합니다!
-
미해결김영한의 실전 자바 - 중급 2편
자료구조&알고리즘 강의
코딩인터뷰용 자료구조&알고리즘 강의 만들어주시면 안되나요. 김영한님 한테 전달좀 해주세요ㅜㅜ
-
미해결김영한의 실전 자바 - 중급 2편
hashIndex함수의 매개변수가 E가 아닌 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, 제네릭 Set 4 부분 강의에서 질문드리고 싶은 점이 있어 여쭤봅니다. private int hashIndex(Object value){ return Math.abs(value.hashCode())%capacity;}이 부분에서 매개변수가 E value가 아닌 Object 로 들어오는 이유는 타입 이레이저 때문일까요 ?
-
미해결그림으로 쉽게 배우는 자료구조와 알고리즘 (심화편)
트리의 조건이 헷갈립니다.
그래프 - 개념 (2:04)해당 영상에서는 트리의 조건 중 하나로 연결되지 않은 노드가 없어야한다고 설명하고 있습니다.그런데 "트리와 이진 트리 - 개념" 영상에서는 터미널 노드는 루트 노드만 있는 트리로 볼 수 있다고 해서 뭔가 헷갈립니다.하나의 노드만 있을 경우 즉, 연결되지 않은 노드가 없는 경우, 이것도 트리라고 할 수 있는 거 아닌가? 라고요 ㅠ
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
4주차 숙제 질문
4-9 숙제 질문 안녕하세요! 청소 관련 문제에서 아래처럼 했는데 무한루프에 빠집니다.. 어디가 잘못된건지 모르겠어서 질문드려요!감사합니다!def get_count_of_departments_cleaned_by_robot_vacuum(r, c, d, room_map): r_real = r c_real = c dr = [-1,0,1,0] dc = [0,1,0,-1] d_real = d count = 1 room_map[r][c] = 2 while True : stop = 0 while stop < 4: for i in range(4): d_real = (d_real+3)%4 r_fake = r_real + dr[d_real] c_fake = c_real + dc[d_real] if room_map[r_fake][c_fake] == 0 : count +=1 r_real = r_fake c_real = c_fake room_map[r_fake][c_fake] = 2 stop = 0 break else: stop += 1 d_real = (d_real+6)%4 r_real = r_real + dr[d_real] c_real = c_real + dc[d_real] if room_map[r_real][c_real] == 1: break return count
-
미해결해외 빅테크 코딩 인터뷰: LeetCode 포기자의 합격 공부법
질문이 세 가지 있습니다.
섹션 3 모의면접은 어떤 플랫폼 쓰신거에요? 인터뷰 보실 때 linkedIn이나 지인 통해서 Hiring manager를 먼저 컨택하셨나요? 아니면, career page에서 cold로 지원하셨나요? 지원 시점 부터 phone screening, full-loop 인터뷰 끝날 때까지 시간이 얼마나 걸리셨나요? 좋은 강의 배포해 주셔서 감사합니다!
-
해결됨김영한의 실전 자바 - 중급 2편
O(1)의 값에 대한 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 MyheshSetV0에 클래스에서(밑의 코드는 중략) 이 클래스의 인스턴스 변수인 int[] elementData 배열은 기본형이기에 모두 0으로 초기화 되어지는데이러한 메인 클래스에서 첫 set.addO(1)이 되는 부분이 이해가 잘 안되네요 ㅜㅜ결국 기본형 배열에 0으로 초기화가 되어있으니 끝까지 비교가 되어 처음 add 역시 O(n)이 될 것 같아서 Integer 제너릭 타입은 널이 들어가서 for-each문 배열을 안 돌지만 int형은 0으로 n번째만큼 돌지 않을까? 라는 생각을 하고 있습니다 혹시 가르쳐 주실 수 있을까요(요약문) int[] elementData는 기본형으로 0으로 전부 초기화 contains의 0값을 data에 다 넣어서 == 비교처리가 됨으로 O(n)처리가 되지 않을지 질문( 추후 Integer배열(null 초기화)로 가정하면 될지)
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
6강 연습문제 13137 질문있습니다.
Exchange Problem문제 질문있습니다. 이 문제를 분석하다가 어려워서 질문드립니다. 제가 분석한 결과는 dp를 통해 모든 경우의 수를 구한 것과 그리디를 통해 구한 경우의수를 비교하는 문제 같았습니다. 근데 예시를 보고 어떻게 문제를 접근해야하는지 모르겠습니다.8 1 5 10 50 100 500 1000 10000위의 예시처럼 밑의 8개의 단위로 된 동전을 통해서 모든 단위(1원~9999원)의 동전에 대해 그리디가 맞다면 yes이고 아니면 no를 택하는것인가요? 너무 어렵습니다... 혹시 파이썬 답안을 알려주실 수 있으신가요? 아니면 추가적인 강의에 대한 생각이 있으신지도 궁금합니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
3-8 해쉬-2 코드 질문
3-8 해쉬 -2안녕하세요!설명해주신 코드에서 해쉬를 이용하면 결국 시간 복잡도는 결국 O(N)인데,아래와 같이 해도 되나요? 아래도 시간복잡도가 O(N)이라고 생각하는게 맞는지 궁금합니다!all_students = ["나연", "정연", "모모", "사나", "지효", "미나", "다현", "채영", "쯔위"] present_students = ["정연", "모모", "채영", "쯔위", "사나", "나연", "미나", "다현"] set(all_students)-set(present_students)
-
미해결김영한의 실전 자바 - 중급 2편
제네릭 연습문제 1번
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. isEmpty() 메서드 관련해서 제네릭은 실행 시점에 타입이 정해지는데 단순 null 인지만 확인하는것이 아닌 기본형,참조형 각각의 타입별로 비어있는지를 구현해야 하지 않나 싶습니다. 아래와 같이 test를 해보면 잘못된 값이 나옵니다. public class ContainerTest { public static void main(String[] args) { Container<Integer> integerContainer = new Container<>(); System.out.println("빈값 확인1: " + integerContainer.isEmpty()); } }
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
정렬 질문
안녕하세요! 정렬 -2 (3-3)과 관련해서 아래처럼 sort를 이용하면 안되는건가요? for문 두번을 이용해서 설명해주신 방법대로 해야하는 것이 맞는지 궁금하고, 아래 방법대로 하면 O(N) 연산량이 되는 것인지도 궁금합니다! 감사합니다.input = [4,6,2,9,1] ###내가 한것### def insertion_sort(array): n = len(array) for i in range(1,n): if array[i]<array[i-1]: a = array[:i+1] a.sort() array[:i+1]=a return array insertion_sort(input)
-
미해결김영한의 실전 자바 - 중급 2편
연결리스트 직접 구현V3 삭제 부분 코드 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요?예안녕하세요 직접 구현하는 연결리스트 3 추가와 삭제 2편을 복습하다 궁금한 점이 생겨 여쭤보게 되었습니다 ! 지금 Object remove 메서드에 else 구절을 보면 (첫번째 노드를 삭제하는 경우가 아닌 경우)getNode(index-1).next = removedNode.next;로 구현이 되어있습니다 !여기에서 스스로 복습하는 과정에서 저는getNode(index-1).next = getNode(index+1);로 생각을 했었는데, 혹시 이 로직으로 해도 문제가 되지 않는지가 궁금하네요 ..! 그리고 바로 하단에 removeNode.item = null;removeNode.next = null;로 직접 null 값으로 비워주는 이유가 있을까요 ?getNode(index-1).next = getNode(index+1);로 두면 삭제할 노드인 getNode(index)는 연결이 끊기기에 자동으로 GC의 대상이 된다고 생각해서 여쭤봅니다 ! 복습하면서 많은 것들을 처음에는 보이지 않던 것들을 많이 얻어가는 중입니다 좋은 강의 제공해주셔서 감사드립니다 !
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
1주차 숙제 추가문제 질문 드립니다!
안녕하세요 딩코님!1주차 숙제에서 추가로 주신 문자열 요약해보기를 풀었는데 JAVA로 진행중입니다! // 아스키코드 방식 public static StringBuffer summarizeString(String str) { int[] strArr = new int[26]; for(int i =0;i<str.length();i++){ int index = (int)str.charAt(i) - (int)'a'; strArr[index] += 1; } StringBuffer strbuf = new StringBuffer(); for(int i =0;i<strArr.length;i++){ if(strArr[i] > 0){ strbuf.append((char)(i+(int)'a')).append(strArr[i]+ " "); } } return strbuf; } public static void main(String[] args) { String inputStr = "acccdeee"; System.out.println(summarizeString(inputStr)); } // 문자열 뒤집기 방식 public static StringBuffer summarizeString(String str) { int count = 0; StringBuffer strBuf = new StringBuffer(); for(int i = 0;i < str.length() - 1; i++){ if(str.charAt(i) == str.charAt(i+1)){ count++; }else{ strBuf.append(str.charAt(i)).append(count + 1).append("/"); count = 0; } } strBuf.append(str.charAt(str.length() - 1)).append(count + 1); return strBuf; } public static void main(String[] args) { String inputStr = "acccdeee"; System.out.println(summarizeString(inputStr)); } 저는 아스키 코드를 사용해서 풀었는데 딩코님이 적어주신 답안지를 보니 바로 전에 풀어본문자열 뒤집기와 유사하게 풀이를 해주셨더라구요그래서 그걸 참고해서 작성해보니 둘다 똑같이 시간복잡도는 O(n)의 성능을 가지고있는거같고다른점은 아스키 코드형식은 무조건 결과값이 abc순으로 출력이되고문자열뒤집기 방식은 입력받은 순서대로 나오는거말고는 다른점은 찾을수가없었습니다. 해당 문제는 해설영상이 없어서 혹시 제가 문제를 이해못해서 잘못 작성한건가 해서 질문남깁니다! 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
-
미해결그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
병합정렬에서 질문이 있습니다.
안녕하세요. 감자님.병합정렬을 복습하던 도중에 질문이 있어 이렇게 글을 남기게 되었습니다. 좋은 강의 제공해주셔서 너무 감사합니다. 코드를 보면 tempArr.length와 tempArr.fill()을 통해 tempArr의 모든 값을 0으로 미리 채워두셨는데 이 이유가 혹시 Merge()가 각 재귀에서 불릴 때마다 특정 인덱스만 사용하기 때문인가요? 혹시 모르는 IndexOutOfBound나 쓰레기 값에 접근하는 것을 미리 방지하고자 그렇게 설정하신 건지 궁금합니다. 1번 질문에서 연계되는 부분인데 보통 자바스크립트의 배열이나 파이썬의 리스트 같은 경우 배열의 끝에 값을 쉽게 추가할 수 있도록 자체 내장함수를 제공하는 것으로 알고 있습니다. 물론 강의 초반에 자바스크립트의 독특한 메서드를 사용하지는 않는다고 하셨는데 만약에 사용한다면(arr.push(), list.append() 같은 함수) tempArr는 Merge 함수가 불릴 때마다 초기화 되므로 arr에 값을 복사할 때 인덱스 보정이 필요한 지 여쭙고 싶습니다.
-
미해결김영한의 실전 자바 - 중급 2편
TreeSet 구현 그림 그려주세요 제발
이런 식으로 TreeSet 도 구현 해서 그려주세요 ㅜㅜ 이런 그림 없으면 이해 안가요 제발 ㅠㅠ 김영한 강사님 소환해서 그려주세요 제발 부탁드립니다 진짜 ㅠㅠ
-
미해결그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
병합정렬 질문 있습니다.
mergesort 함수만 재귀호출 했다고 말하셨는데 파라미터 인수값으로 들어오는 더미 배열이 minindex 기준으로 미리 정렬이 어떻게 되는걸까요?제가 아는 바로는 하나의 요소만 남을 때까지 배열을 분리하고 merge를 하면서 정렬이 일어나는걸로 아는데요mergesort라는 함수 밖에 선언한 게 없는데 인자로 넘어오는 배열값이 어떻게 분열만 하는데 정렬이 되냐는 말입니다.강의 5-6분사이에 있는 내용입니다.AI 답변 달지말아주세요. 감자님이 직접 답변 부탁드립니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
k번째 값 출력하기 문제에서 이렇게 풀어도 되나요?
2주차 끝 숙제 중 링크드리스트의 끝에서 k번째 값 출력하기 문제를 처음에 먼저 혼자 풀어볼 땐 링크드리스트를 순회하면서 각 노드를 따로 생성한 배열에 담고 return 할 땐 -k 인덱스로 끝에서 k번째 값을 가져오도록 해봤습니다. 답은 나오긴 하는데 혹시 이런 식으로 풀어도 되나요?? cur = self.head arr = [] while cur is not None: arr.append(cur) cur = cur.next return arr[-k]
-
미해결개발 역량 + 자격증까지, Java로 PCCP 자격증 준비하기
실습 권한 부탁드립니다..
들어가지를 못하구 있어요 ..ㅠ
-
미해결김영한의 실전 자바 - 중급 2편
LinkedList 배열 선언에 관해서
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오): 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오): 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오): 예[질문 내용]LinkedList<Integer>[] buckets = new LinkedList[CAPACITY] 에서 제네릭을 이용한 배열 초기화를 한 이 부분에서 보통 제네릭으로 선언하면 LinkedList<Integer> buckets = new LinkedList<>() 이렇게 생성하는 것으로 아는데, 배열로 만들면 <>()은 생략되는건가요? 배열의 크기만 정하면 되는건가요?궁금해서 질문드립니다.