1. 현재 학습 진도 3강까지 진도를 나간상태입니다. 2. 어려움을 겪는 부분 코드 효율성에 대해서 아직 감이 없어서 질문을 남기고자 합니다! 질문 문항은 추가문제인 1874 - 스택 문항입니다 def stack_sequence(n, sequence): 3. 시도해보신 내용 우선 제가 작성한 코드부터 보여드리겠습니다. def stack_sequence(n, sequence): # 이 곳을 채워보세요! stack_sequence = [] k = 0 push_pop = [] for i in range (1, n+1): stack_sequence.append(i) push_pop.append('+') while stack_sequence and stack_sequence[-1] == sequence[k]: stack_sequence.pop() push_pop.append('-') k += 1 if stack_sequence != []: print("NO") return for char in push_pop: print(char) return 선생님의 필기에 있는 코드와 다르게 수행가능한 조건을 전부 수행 -> 반복문 종료이후 종료 조건이면 return / 아니면 정답! 흐름으로 구성했습니다. 발상에 있어서 생각의 흐름? 대로 코드를 작성했다고 생각하는데 필기의 코드처럼 하나의 반복문내에서 특정 조건 -> 탈출 하도록 하는게 더 바람직한 코드일까요? 코드에 정답은 없다고 하셨지만 계속 코드를 작성하다보니 생각의 흐름대로만 작성하는것 같아서 앞으로 코드를 작성할때 발상을 더 견고히 하고 코드를 짜야하는지,, 감이 잘안서서 질문을 남깁니다. 항상 감사드립니다! 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
안녕하세요, 헤이밥님! 강의 잘 듣고 있습니다! 다름이 아니라 제가 다음 주 토요일에 코딩테스트 시험이 있는데요, 짧은 기간 내에 핵심만 공부를 하려고 할 때 강의 목차 기준으로 어떻게 학습하는 것이 효율적일지 여쭤봅니다! 당연히 모든 강의를 순차적으로 듣는 것이 가장 효율적인 방법이지만 현실적으로 시간이 부족하다고 생각해서요! 참고로 코딩테스트 기업은 네이버입니다! 감사합니다!
선생님 안녕하십니까 public void setString(String param) { string = param.getBytes().clone(); } getBytes() 메서드 호출 시점에 [] bytes 인스턴스가 새로 생성 되었으나 이후에 clone() 메서드를 호출하는 것은 getBytes()로 새로 생성한 인스턴스에 대한 또 다른 인스턴스를 생성하는 것이므로 이는 중복 생성이 아닌가.. 하는 생각이 들어 여쭙고자 합니다. 제 생각에는 매개변수의 타입이 [] bytes 임을 전제로 하시고 말씀하신것 같습니다만 말씀하시는 내용과 코드가 달라 혹여 수강생들에게 혼란을 주지 않을까 싶어 질문으로 남깁니다. 혹여나 제가 잘못 생각한 부분이 있다면 따끔히 지적 부탁드립니다. 항상 좋은 상의 만들어주셔서 감사합니다 (꾸벅)
1. 현재 학습 진도 41강 4-8 DP 부분 수강 중입니다 2. 어려움을 겪는 부분 첨부해주신 Java 코드로 구현시 fib(100) 의 결과 값이 long 범위에 초과 되어 오버플로우가 발생하는 것 같습니다. 3. 시도해보신 내용 BigInteger 를 도입하여 해결하긴 했지만, 더 나은 방법이 있다면 알려주시면 감사드리겠습니다. import java.math.BigInteger; import java.util.HashMap; import java.util.Map; public class FiboDynamicProgramming { private static Map<Integer, BigInteger> memo = new HashMap<>(); static { memo.put(1, BigInteger.ONE); memo.put(2, BigInteger.ONE); } // 1. 메모에 값이 있으면 반환 // 2. 없으면 피보나치 공식 적용 및 메모이제이징 private static BigInteger fiboDynamic(int n, Map<Integer, BigInteger> fiboMemo) { if (fiboMemo.containsKey(n)) { return fiboMemo.get(n); } BigInteger nthFibo = fiboDynamic(n - 1, fiboMemo).add(fiboDynamic(n - 2, fiboMemo)) ; fiboMemo.put(n, nthFibo); return nthFibo; } public static void main(String[] args) { System.out.println(fiboDynamic(100, memo)); } }
안녕하세요. 개발자님. 주소록 3단계에 너무 막히고 시간이 끌려서 어찌해야할까 하고 조언을 얻으려고 질문 드립니다. 정답을 보니 내용을 너무 어렵게 생각했다 라는 생각이 드는 것이 먼저이고 이러한 실습을 많이 해보지 못한 개발자이고, 경험을 많이 쌓아봐야 숙달이 되는 것은 인지는 하고 있지만... 그래도 새로운 것을 시도해보라고 하면 처음이 무슨 소리인지 모르고 적용을 어떻게 할 지 몰라서 막막합니다. (하루 이틀이 지나야 번뜩 떠오릅니다) 그래서 이러한 문제를 어떤 것을 참고 삼아서 공부를 해야 할 지 조언을 얻고 싶습니다. 많이 해보는 것만이 답인지 반복 숙달이 답인지 개개인마다 다른지 ...
안녕하세요, 현재 DFS 관련하여 내용을 수강하고 있습니다. (39강. DFS & BFS) 깊이 탐색인 알고리즘인 DFS를 처음엔 재귀로 접근하셨다가 RecursionError 의 이유로 스택을 사용하셨는데요, 스택을 생각하게 된 생각의 흐름(?) 을 잡아보고싶어 질문을 드리게되었습니다. (나중에 코테 연습 때 대비가 될까하여 더 고민을 해보는 것인데, 시간대비 효율이 나지않는다면 말씀해주세요 ㅎㅎ) 일단 제가 이해한 흐름은 여기까지입니다. DFS는 깊이 우선 탐색 깊이 파고들었다가 다시 나오고 반복 그래프의 끝까지 깊이 파고들었다가 , 방문하지 않는 노드를 방문하기 위해 나중에 다시 돌아갈 "기준점" 이 필요하게 될 것임 그렇다면 이전에 어디까지 방문했는지 기록 을 해놓아야함 어떻게 해야 기록을 더 효율적으로 할 수 있을까? 하지만 여기서 스택을 사용해야겠다고 생각이 들게 되는 이유를 찾고 싶습니다 ㅎㅎ 알고리즘을 잘하시는 분들 보시면 이런 부분은 큐를 써야겠고, 스택을 써야겠다 라고 바로 생각을 하시는데, 저로서는 왜 이게 바로 스택을 써야한다고 생각이 드는지 이해가 되질 않아서요 혹여 이전에 강의때 설명하신 부분이라면 죄송합니다..ㅎㅎ
비전공자 신입 취준생입니다. 부트캠프 통해서 백엔드 과정을 수료 후 너무 부족해서 현재 인프런에서 자바하고 스프링공부를 다시하면서 알고리즘 공부도 준비를 해야할 것 같아서 강의를 듣고있습니다. 자바도 아직 많이 부족한데 파이썬으로 하다보니 더 헷갈리네요 제공해주신 파이썬 기초강의를 듣고 알고리즘 강의를 듣고있는데 기초강의와 다르게 파이참으로 할 땐 들여쓰기를 하더라고요 자바와 다른 방식으로 들여쓰기를 하다보니 아직은 어려운데 들여쓰기는 어떤식으로 익혀야할지 모르겠네요
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? [4주차] 4-9 어떤 알고리즘을 학습하고 계신가요? Heap 여기까지 이해하신 내용은 무엇인가요? 개념은 이해 완료했습니다. 2. 어려움을 겪는 부분 어느 부분에서 막히셨나요? 숙제 1번에서 노션 예제 2번째(코드 내 예제X) 코드의 어떤 로직이 이해가 안 되시나요? stock = 0, dates = [0, 10, 15], supplies = [20, 10, 15], k = 35 일 경우, 0일과 15일에 공급량을 가져오는 게 정답(즉, 2의 리턴값)이라고 주석에 적혀있습니다. 알려주신 로직으로 해당 예제 실행 시, 3의 값이 나옵니다. while stock <= k: 위의 코드에서 같을 때도 해당 반복문을 돌도록 되어 있기 때문인데, 작은게 "stock < k" 가 아니라 "stock <= k"인 이유가 궁금합니다.
안녕하세요. 강의를 통해서 자료구조와 알고리즘의 개념 잘 공부하고 있습니다. 궁금한 점이 있는데 예를 들어 2차원 배열을 공부하고 난 뒤 2차원 배열과 관련되어 있다는 코딩 테스트 문제들을 봐도 어떻게 풀어야 할 지 감이 잘 오지 않습니다. 코딩테스트는 개념을 익힌 후 공부해야 할 별개의 분야로 봐야 하는 건지 아니면 개념을 더 확실히 익히지 못해서 그런 건지 초보자로써 학습 순서나 방향에 대해 여쭤보고 싶습니다.
강의 들으면서 linkedList, stack, deque 처럼 알고리즘 공부를 하면서 차근차근 알아가는 방식이 좋다고 생각합니다. 근데 실무에서 사용하기엔 대부분 import 로 모듈구현을 활용하는 방식으로 진행될텐데, 실무에서 사용하기 좋은 모듈들을 모아놓은 자료가 있는지 궁금합니다! 감사합니다 😃