- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님. 수업 잘 듣고 있습니다. sort 함수 관련해서요. sort 함수가 nlog(n)의 시간 복잡도를 가지면 n번 반복하는 for문 아래에 sort 함수가 들어가면 n^2log(n)이 되는게 맞을까요?
문제를 풀기 위한 간단한 개념 이해로 빠르게 다음 강의로 넘어가야 할지, 복습을 마치고 진도를 나갈지 고민하고 있습니다. 자료구조(스택)를 직접 만들면서 자꾸 링크드 리스트 개념이 헷갈리고 있습니다. 문제 풀이는 파이썬의 메소드를 통해서나, 반복문을 통해서 해주시고 계셔서 궁극적으로 코딩 테스트 통과를 위해서 빠르게 진도를 넘기는게 중요할까요?
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 5-4 어떤 알고리즘을 학습하고 계신가요? 카카오 코테 여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분 어느 부분에서 막히셨나요? 코드의 어떤 로직이 이해가 안 되시나요? 어떤 개념이 헷갈리시나요? 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 에러가 발생했다면 어떤 에러인가요? 현재 작성하신 코드를 공유해주세요 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊 안녕하세요 스타트업에서 인턴으로 근무하고 있는데요 실제 인공지능 개발자들의 개발 환경 중에 mac os를 많이 사용하나요? window os를 많이 사용하나요? 곧 회사 컴퓨터가 바뀔수도 있을 것 같아서 여쭤봅니다
일단 자바질문이라 죄송합니다. ㅎㅎㅎ 1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 5-2.LINE 인턴 채용 코딩 테스트 입니다. 어떤 알고리즘을 학습하고 계신가요? BFS 내용입니다. 여기까지 이해하신 내용은 무엇인가요? time단위로 체크하기위해 visited list와 for문을 사용하는것을 이해했습니다. 2. 어려움을 겪는 부분 어느 부분에서 막히셨나요? visited에서 Map에 true를 받는 이유가 궁금합니다. 코드의 어떤 로직이 이해가 안 되시나요? visited에서 Map에 true를 받는 이유가 궁금합니다. 어떤 개념이 헷갈리시나요? List<List<Integer>>를 사용 할 수 있을꺼 같은데 map을 사용한 이유가 궁금합니다. 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 강의를 10번정도 다시본거같습니다. 에러가 발생했다면 어떤 에러인가요? 초반에 while문 탈출조건을 잘못설정하여 무한루프가 돌았습니다. 현재 작성하신 코드를 공유해주세요 public static int solution(int c, int b) { int time = 0; Queue<int[]> q = new LinkedList<>(); q.add(new int[]{b, 0}); List<List<Integer>> visited = new ArrayList<>(200001); // [{},{} .... 20만개] for (int i = 0; i < 200001; i++) { visited.add(new ArrayList<>()); } while (c <= 200000) { c += time; if (visited.get(c).contains(time)) { return time; } time++; int qSize = q.size(); for (int i = 0; i < qSize; i++) { int[] cos = q.poll(); int nextB = cos[0]; if (nextB - 1 >= 0) { visited.get(nextB - 1).add(time); q.add(new int []{nextB - 1, time}); } if (nextB + 1 <= 200000) { visited.get(nextB + 1).add(time); q.add(new int[]{nextB + 1, time}); } if (nextB 2 <= 200000) { visited.get(nextB 2).add(time); q.add(new int[]{nextB * 2, time}); } } } return 0; } 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
해당강의 : 2주차;2-10. 2주차 끝&숙제 설명 강사님 안녕하세요. 강의 중 두 번째 문제인 ‘배달의 민족 - 배달 가능 여부’ 문제를 풀이하며, 아래와 같이 코드를 작성해보았습니다. def is_available_to_order(menus, orders): for order in orders: if order not in menus: return "주문 불가능" return "주문 가능" 강의에서 설명하신 set() 을 활용한 방식이 탐색 효율이 높다는 점은 잘 이해했습니다. 이에 대해 생각해보며 , 제가 작성한 방식도 리스트 탐색만으로 충분히 동작하여 데이터 규모가 크지 않은 상황에서는 큰 성능 차이가 없을 것 같다는 생각이 들었습니다. 두 방식 모두 평균적인 입력 크기에서는 큰 차이가 없을 것 같은데, 혹시 제가 사용한 방법도 일정 규모 이하의 데이터에서는 효율적인 접근으로 볼 수 있을지 궁금합니다. 또한, 실제 서비스 코드에서는 어떤 기준으로 set() 변환을 적용하는 것이 바람직한지 알고 싶습니다.
안녕하세요! 현재 코딩테스트 준비중인 학생입니다. 백준에서 현재 문제 유형 별로(DFS, 백트래킹 등등..) 풀어 보고 있습니다. 문제는 구현같은 유형은 몰라도 풀 수 있지만 DP, N-queen문제는 해당 문제를 접해보지 않고서는 풀기 힘들다고 생각합니다. 하루에 한 유형씩 제대로 이해하기 vs 한 유형만 쭉 풀어서 마스터하기 둘 중에 어떤게 더 좋은 접근법이라고 생각하시나요? 막상 유형별로 풀자니 구현, DFS, BFS, DP유형이 코테에 많이 보이는거같아서 고민입니다.
우선 "얄코의 가장 쉬운 자료구조와 알고리즘" 강의를 너무나 재밌게 잘 완강하였습니다. 매번 느끼는 부분이지만 얄코님의 강의는 대부분 애니메이션 형태로 이루어져 있어 부담없이 가볍게 볼 수 있다는 그 장점을 토대로 항상 봤었습니다. 특히 이번 강의는 기존에 정보처리기사 필기 시험을 준비하면서 일부 공부했던 부분이 다시 보였기에 더욱 더 크게 와닿았습니다. 그래서 질문드리는 점이 강의 내용보다는 현재 AI/빅데이터 시대에서 알고리즘의 중요성에 대해서 GPT 등의 내용들보다 강사님께서 바라보시는 그 관점이 궁금하게 되네요. 물론 GPT에게도 질문할 수는 있겠다만 그 내용들이 100% 진실일거란 확답은 없기에 아직까지도 사람들에게 직접 대면적으로 질문하는 것을 좋아합니다. (이점 양해 바랍니다 ㅠㅠ) 어느 덧 2025 한가위 황금연휴가 끝이 났습니다. 추후 황금연휴는 2044년이라고 하는데 그 때까지 기운차게 지내셨으면 좋겠습니다 얄코님~!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의에서는 Java 21버전을 사용하고, 현재 최신 LTS 버전은 25입니다. 실무에서는 21버전을 계속 사용하다가 25버전이 안정화되면 25버전을 사용하나요? 아니면 22, 23, 24 바로 업데이트 하는 경우가 많을까요?
💡 질문 작성 가이드 보다 빠르고 정확한 답변을 위해, 아래 사항을 참고해 질문을 작성해주세요. 1. 간단한 내용은 ChatGPT로 먼저 확인해보세요. 기본 개념이나 용어 설명은 ChatGPT를 활용하는 것이 더 빠르고 효율적일 수 있습니다. 2. 질문하실 때, 아래 내용을 함께 적어주시면 좋아요. 어느 파트인지 섹션 3 - 브루트 포스 알고리즘[문제풀이]: BOJ 1342 내가 이해한 내용 재귀 + 백트래킹을 이용해서 푸는 방법(방법2) 중 선생님께서 작성하신 dict과 set 객체를 이용한 것이 아닌 collections.Counter를 이용하여 코드를 작성했더니 시간초과가 뜹니다. from itertools import permutations from collections import Counter s = input() def sol(lev): global s, counter, choose, ans # base case if lev == len(s): ans += 1 return # recursive case for k in chars: if counter[k] == 0: continue if (not choose) or (choose[-1] != k): counter[k] -= 1 choose.append(k) sol(lev + 1) choose.pop() counter[k] += 1 counter = Counter(s) chars = tuple(counter.keys()) choose = [] ans = 0 sol(0) print(ans) 궁금한 점 dict과 set을 이용해서 for문으로 직접 주입하는 방식과 Counter 컬렉션을 이용해서 사용하는 방식에 어떤 차이점 때문에 시간초과가 나는지 궁금합니다 (참고로 python3로는 시간초과가 나지만, pypy3로는 통과가 됐습니다. 이 부분도 왜 그런지 궁금합니다.) 파이썬을 선생님 강의로 입문을 해서 그런지 파이썬 기초에 대해 지식이 많이 부족합니다. 알고리즘 본질이 아닌 파이썬에 대해 질문드려 죄송합니다
프론트엔드 개발을 하면서 javascript의 제네레이터 함수에 대해 학습했으나, 프론트에서는 이 함수의 실용성에 대해서 크게 공감을 받지 못했습니다. 그러던 중 파이썬을 학습하여 백엔드까지 확장을 넓혀야겠다고 생각했고 이 강의를 접하게 되었는데 제네레이터 함수의 실무에서의 사용을 잠깐 언급하신 것 같습니다. 구체적으로 어떤 사용사례가 있는지 궁금합니다.
섹션 3 퀴즈에서 헷갈리는 부분이 생겨서 질문드립니다. 문제의 일부는 아래와 같습니다. (정답은 B) 1. 배열과 링크드 리스트의 주요 성능 차이점 중 하나는 무엇일까요? A 배열은 요소 탐색 시 O(1)이 걸리지만, 링크드 리스트는 O(N)이 걸립니다. B 링크드 리스트는 중간에 요소를 삽입/삭제 시 O(1)이 걸리지만, 배열은 O(N)이 걸립니다. 제가 헷갈리는 부분 A도 정답이 될 수 있지 않을까요? (A를 선택한 경우 오답으로 처리됨) 수업과 수업 자료를 통해 이렇게 이해 했습니다. "특정 원소 조회시 배열은 O(1), 링크드 리스트는 O(N)의 시간 복잡도를 가진다" 요소 탐색과 요소 조회는 다른 개념일까요?
[질문 내용] MyUser에서 compareTo를 Override한 뒤 Arrays. sort ( array ); System . out . println(Arrays. toString ( array )); 을 했을때 나이 순으로 정렬이 되는데 이게 어떻게 이렇게 되는건지 잘 이해가 되질 않습니다. sort가 내부에서 compareTo를 호출하고 array가 MyUser타입이기 때문에 MyUser에서 Override한 compareTo를 호출하는건가요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 현재 반복을 도는 조건이 아래와 같이 되어 있는데요 for (let i = 0; i < index-1; i++) deletedNode = this.head; for (let i = 0; i < index; i++) { deletedNode = deletedNode.next; } deletedNode.prev.next = deletedNode.next; deletedNode.next.prev = deletedNode.prev; 이런식으로 아예 삭제 노드를 이전노드의 넥스트가 아닌 현재 노드까지 순회를 해서 할당하면 어떤 문제가 있을까요...?? 이렇게 하면 조금 더 간결하게 처리 할 수 있을듯 해서요!
[개발 스터디 모집 내용 예시] 스터디 주제 : LeetCode 데일리 문제 풀이 인증 스터디 스터디 목표 : 매일 LeetCode Daily Challenge 문제를 꾸준히 풀이하며 알고리즘 실력 향상, 또한 풀이를 공유하며 사고를 확장하는 것도 좋은 것 같습니다. 참고: 무조건 LeetCode Daily Challenge 문제 아니어도 됩니다. 동기부여 목적으로 만든 방 입니다. 예상 스터디 일정(횟수) : 4주(1개월) 단위로 운영 (지속 가능 시 자동 연장) 예상 모집인원 : 제한 없음 (현재 7명) 스터디 소개와 개설 이유 : 혼자 알고리즘 문제를 푸는 것에 어려움을 느끼거나, 꾸준함을 유지하기 어려운 분들(저)을 위해 ‘검증 기반의 인증 스터디’ 를 하여 매일 문제를 푸는 것을 목표로 개설했습니다. 스터디 관련 주의사항 : 들어오고 나가고는 자유입니다. 스터디에 지원할 수 있는 방법을 남겨주세요. : https://open.kakao.com/o/gskBP1Hh