class LinkedList
해결됨
코딩테스트 [ ALL IN ONE ]
안녕하세요! 좋은 컨텐츠 감사합니다. [질문] 14:15에 등장하는 class LinkedList가 왜 object를 상속하나요? 없어도 되지 않을까 하는데, 무슨 이유가 있는 것인지 궁금합니다. class Node는 상속없이 작성되었기에, 그 차이가 더욱 궁금합니다. 감사합니다.
- python
- 코딩-테스트
- 알고리즘
173만명의 커뮤니티!! 함께 토론해봐요.
해결됨
코딩테스트 [ ALL IN ONE ]
안녕하세요! 좋은 컨텐츠 감사합니다. [질문] 14:15에 등장하는 class LinkedList가 왜 object를 상속하나요? 없어도 되지 않을까 하는데, 무슨 이유가 있는 것인지 궁금합니다. class Node는 상속없이 작성되었기에, 그 차이가 더욱 궁금합니다. 감사합니다.
해결됨
자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 2(마스터편)
이해하는데 시간이 좀 걸려서, 다른 분들도 고민하실까봐 글 남겨요 public static int VISIT = 2; 미로찾기 문제에서 나오는 상수 VISIT 의 쓰임새는 탐색한 모든 위치를 VISIT 주는 것이 아니라, 정답의 길만 VISIT을 주고있어요 따라서 그 위쪽 로직에서 newPosition.direction = direction +1; 을 주는 겁니다. NOTVISIT 이여도 이미 갔던 path를 다시 안가기 위해서요
해결됨
Do it! 알고리즘 코딩테스트 with JAVA
저자 선생님 안녕하세요 좋은 교재와 강의 잘 보고 있습니다. 강의가 없는 1016번 문제에 대해 오래동안 고민을 해도 해결이 안되어 질문을 드리고 싶은데, 받아주시면 정말 감사하겠습니다. 시간초과가 난 전체 코드입니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { InputStreamReader is = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(is); StringTokenizer st = new StringTokenizer(br.readLine()," "); long min = Long.parseLong(st.nextToken()); long max = Long.parseLong(st.nextToken()); // 최댓값과 최솟값의 차이만큼 배열 선언하기 boolean[] Check = new boolean[(int)(max-min+1)]; // 2의 제곱수인 4부터 Max보다 작거나 같은 값까지 반복하기 /* 저자님 코드(정답) for(long i=2; i*i<=max; i++){ long pow = i*i; //제곱수 long start_index = min/pow;//최솟값/제곱수 if(min%pow!=0){ start_index++; } for(long j = start_index; pow*j <=max; j++){//제곱수를 true로 변경하기 Check[(int)((j*pow)-min)] = true; } } */ //제 코드(시간초과) for(long i=2; i*i<=max; i++){ long pow = i*i;//제곱수 for(long j=1; (j*pow)<=max; j++){ long t= j*pow;//제곱수의 배수 if((min<=t) && (t<=max)){//제곱수의 배수가 min과 max 범위 안이면 Check[(int)(t-min)] = true; //제곱수의 배수 표시 } } } // long count = 0; for(long i = 0; i<=max-min; i++){ if(!Check[(int)i]){ count++; } } System.out.println(count); } } 위의 전체 코드에서 저자 선생님 코드를 주석 /* */ 로 감싸고 제 코드를 바로 아래에 작성했는데, 보시기 힘들 것 같아서 보라색과 초록색으로 구분한 스크린샷을 같이 올려드립니다. 제 코드의 경우, 백준 문제에서 보여준 테스트케이스는 통과하는데 시간초과가 발생했습니다. 그래서 많은 테스트케이스를 시도해봤는데 입력 1000000000000 1000001000000 이 테스트케이스에서 저자 선생님 코드는 제대로 작동을 하고, 제 코드는 시간초과가 발생하는 것 같았습니다. 하루종일 고민해도 그 이유가 도저히 이해가 안돼서, 질문을 드리고 싶습니다. 가르쳐주시면 정말 감사하겠습니다. 읽어주셔서 감사합니다. +오후 8시에 질문을 추가드립니다. 시간초과가 안나는 핵심 로직이 long start_index = min/pow;//최솟값/제곱수 if(min%pow!=0){ start_index++; } 같은데 이 부분이 이해가 너무 어렵습니다.. 이 코드를 더 자세하게 가르쳐주시면 감사하겠습니다.
해결됨
코딩테스트 [ ALL IN ONE ]
안녕하세요, 전 노씨님의 모든 커리큘럼을 구매해서 공부하고 있습니다. 특히 기술면접!!에 많은 도움을 받고 그때부턴 선생님을 믿고 다 지르고/지를예정인데요. 다른건 준비를 하고 있거나, 어느정도 해야 통과하겠구나 감이 있는 상태라서 괜찮은데 네카라기준 [포트폴리오]는 어느정도로 준비를 해야하는지 감이 잘 오지 않습니다. 혹시 선생님께서는 포트폴리오를 어떻게 준비하셨는지, 기술이나 포폴 갯수가 중요하지 않다는 것까진 알고 있지만 그럼 어느 정도의 수준(?)까지 생각해서 구현해야하는지 알고 싶습니다. + 면접 수준 ps. 어디에 질문을 해야할지 몰라서 최근 수강하고 있는 강의에 글 남기게 되었습니다. 코테도 열심히 준비해 보겠습니다. 감사합니다.
미해결
코딩테스트 [ ALL IN ONE ]
좋은 강의 감사합니다. LIFO 2번째 문제는 for문 안에 while문이 들어가 있기 때문에 시간복잡도가 O(n^2)인 것 같다는 생각이 드는데요. 전체 시간복잡도가 왜 O(n)인지 설명을 부탁드립니다.
해결됨
Do it! 알고리즘 코딩테스트 with JAVA
안녕하세요 강의 잘 보고 있습니다. 강의를 보다가 질문이 생겨 질문드립니다. 강의 영상에서 union 함수에서 a,b의 크기와 상관없이 a와 b가 다르다면 parent[b] = a; 라고하시는데 이렇게 해도 되는 이유가 어차피 나중에 find 함수의 재귀함수부분 return parent[a] = find(parent[a]); 에서 경로 압축이 되기 때문에 크기 상관없이 parent[b] = a; 선언 해주신 건가요?
해결됨
코딩테스트 [ ALL IN ONE ]
메일함에서 확인이 안됩니당
해결됨
코딩테스트 [ ALL IN ONE ]
4개월정도 잡고 하려는 데 충분한 시간일까요? 아니면 더 투자 해야 하나요?
해결됨
코딩테스트 [ ALL IN ONE ]
수강생 추가 혜택! 교재 제공(출판 전까지만) 그 notion 초대 구글폼 제출했는데 거기에 적은 이메일로 보내주시나요!?
미해결
코딩테스트 [ ALL IN ONE ]
안녕하세요! 혹시 남아 있는 강의들은 언제쯤 업데이트가 되는지 알 수 있을까요?
해결됨
코딩테스트 [ ALL IN ONE ]
안녕하세요, 좋은 강의 제공해주셔서 덕분에 잘 듣고있습니다. 강의를 들으면서 몇가지 개선되었으면 하는 점이 있어서 글을 남겨봅니다. 참고로, 저는 다른 코딩테스트 강의는 들어보지 않았고 지극히 주관적인 견해입니다! 집어주신 코드는 아예 템플릿처럼 암기하라고 하셨는데, 암기할 수 있도록 예제를 Notion에 정리해서 공유해주셨으면 이해하기가 더 쉬웠을 것 같습니다.(저는 별도로 정리를 하고 있습니다.) 코드가 수업중간에 수정되는 경우도 있고 코드가 풀로 적혀있지 않은 경우도 있어서, 템플릿처럼 암기를 하기 위해서는 정리되어있는 자료(예시 input값을 포함한 전체 코드)가 있었으면 좋겠다고 생각했습니다. 예를 들어 Tree 자료구조를 설명하실 때는 return의 속성과 같은 부분에 대해 연결지어서 설명해주셨으면 더 좋았을 것 같습니다. class가 나오는 경우에는 왜 여기에는 값을 미리 부여했고 이 케이스에는 미리 값을 주지 않았는지 등등 부연설명을 더 해주시면 좋을 것 같습니다. 인터넷 강의 특성 상 커뮤니티 게시판에 feedback을 신경 써주시면 좋을 것 같습니다. 좋은 강의 저렴하게 제공해주셔서 감사합니다! 부족하지만 열심히 따라가고 있습니다. 강의를 듣는동안에는 따로 문제를 풀지 않고 쭉 들어보고 있습니다. 강의에 나온 코드를 완벽히 외우고 백준 문제들을 자료구조나 알고리즘당 5~10문제를 풀어보려고 하는데 괜찮은 공부방법인지 문의드립니다. 감사합니다.
미해결
자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 2(마스터편)
안녕하세요. FileOutputStream 객체 생성시 질문이 있어서 글 남깁니다. FileOutputStream fos = new FileOutputStream("output.txt"); 이후 try() resource 구문을 쓰는 건 문제가 되지 않는데 처음에 변수 초기화를 시켜주지 않고 FileOutputStream fos = null; fos = new FileOutputStream("output.txt"); 위와 같이 작성 후 try resource 구문을 작성하면 에러가 나네요. 해당 원인이 무엇인지 궁금합니다. 감사합니다.
해결됨
코딩테스트 [ ALL IN ONE ]
해당 코드에서 LCA에 첫번째 인자값에 배열을 넣어주는데 LCA의 함수에서 root는 left와 right를 가지고 있습니다. 무엇인가요...
해결됨
코딩테스트 [ ALL IN ONE ]
수업에서 같은 원소를 두 번 사용할 수 없다는 스스로 구현해보라고 하셔서 초보지만 코드를 작성해 봤습니다. 이렇게 해도 되는 걸까요? 전 강의 온도 문제에서 enumerate 쓰신거 보고 여기에 적용해 봤습니다. def two_Sum(nums, target): memo = {} for i, v in enumerate(nums): memo[v] = i # index 저장 for i, v in enumerate(nums): find_number = target - v if find_number in memo and memo[find_number] != i: # 첫번째 for에서 저장한 index랑 i 비교해서 같지 않아야 true return True return False two_Sum(nums=[4,1,9,7,8,2], target=14)
해결됨
그림으로 쉽게 배우는 자료구조와 알고리즘 (심화편)
이미지에서 보면 레드노드가 제거되고나서 블랙노드만 남은 상황입니다. 영상을 보면 레드노드가 제거되어서 레드블랙 규칙을 어기지 않는다고 표현을 하는데요. 이미지를 봤을 때, 5에서 시작해서 NIL 노드까지 가는 구간에 높이가 제 생각에는 다르다는 생각이 들어서 질문드립니다. 5-3-NIL 5-7-NIL 5-7-10-NIL 이렇게 NIL노드로 간다고 가정하면 5-7-10-NIL 노드경로만 길이가 다르다고 생각하는데 규칙이 깨진것 아닌가요? 이해가 잘 안되어요 ㅠ
미해결
실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지
강의 시간 약 5분 경 def calculate_total(items:List[Item]) -> float: 에서 에로우 연산이 의미하는 것이 무엇인가요? 추상 클래스를 사용하는 이유에 대하여 더 구체적으로 설명해주실 수 있나요? (실제 인더스트리에서 어떻게 사용이 되는지 등과 같은..)
해결됨
그림으로 쉽게 배우는 자료구조와 알고리즘 (심화편)
자식 노드가 모두 존재하는 경우에 제거하는 경우의 수 중에서 제일 마지막 fakeParentRootNode 를 처리하는 부분에서 질문이 있습니다. 제거를 할 때 값을 변경하는 방식으로 진행하다보니 루트노드가 제거가 된다고 하더라도 fakeParentRootNode의 오른쪽 자식노드는 계속해서 root 노드의 주소값을 바라보고 있을 것이고, 변경사항이 없을텐데 해당 코드를 넣는 이유가 있을까요? if (fakeParentRootNode.getRightSubTree() !== this.root) { this.root = fakeParentRootNode.getRightSubTree(); }
해결됨
Do it! 알고리즘 코딩테스트 with C++
C++ 책보고 풀어보고 있는데 이해가 안가는 부분이 있습니다. struct compare { bool operator()(int o1, int o2) { int first_abs = abs(o1); int second_abs = abs(o2); if (first_abs == second_abs) { return o1 > o2; } else { return first_abs > second_abs; } } }; return o1 > o2; 이 부분에서 현재 입력값이 1,-1,0 이렇게 들어오면 o1 = 1, o2 = -1이 들어와서 비교를 하여 1 > -1 되는거 아닌가요? 그럼 양수가 정렬이 되는데 어떻게 이해를 해야하는지 모르겠습니다. 우선순위 큐에 관해서 Compare에 찾아보니 작은 수를 반환한다고 하는데 왜 그런지 이해가 안가네요... 확인부탁드립니다. 마찬가지로 return first_abs > second_abs; 이 부분도 설명 부탁드립니다.
해결됨
코딩테스트 [ ALL IN ONE ]
스택 문제풀이에서 return not stack 이나 while stack and stack[-1][1] 는 무엇을 의미하나요? 1. while stack and stack[-1][1] < temp : 2. while temp > stack and stack[-1][1] : 1번과 2번 코드가 왜 다르게 작동할까요?? 감사합니다!
해결됨
코딩테스트 [ ALL IN ONE ]
선생님 코드를 보고 이해하고 VSCode로 input을 통해서 확인해보고 싶은데 아직 초보라 잘 모르겠는 점이 있습니다. 이렇게 찍어보면 NameError: name 'dailyTemperatures' is not defined 라고 뜨는데 직접 input을 넣고 output을 확인하려면 어떻게 코드를 작성해야할까요? class Solution(object): def dailyTemperatures(self, temperatures): answer = [0]*len(temperatures) stack =[] for day, tmp in enumerate(temperatures): while stack and stack[-1][1] < tmp: prev_day, _ = stack.pop() answer[prev_day] = day - prev_day # stack이 비어있으면 while문 안타고 바로 append stack.append((day, tmp)) return answer print(dailyTemperatures([73,74,75,71,69,72,76,73]))