묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결2주만에 통과하는 알고리즘 코딩테스트 (2024년)
다익스트라 강의에서 shortest_finder 함수는 항상 시작한 노드를 리턴하지 않나요?
내용무!
-
해결됨코딩테스트 [ ALL IN ONE ]
시간복잡도 질문 드립니다.
list의 시간복잡도를 설명하실 때 visited = [True, True, False, True, False, True, False]# if visited[3] == True:if visited[3]: print("room number 3 visited")이 코드에서 입력값 n에 따라 visited의 길이가 n으로 바뀌는 거면 visited 리스트를 n개의 원소로 초기화하는데에 걸리는 시간은 O(n)이므로 , if visited[3]: 이부분에서의 시간복잡도가 O(1)이여도 코드의 총 시간 복잡도는 O(n) 아닌가요 ??
-
미해결김영한의 실전 자바 - 중급 2편
혹시 고급편은 언제 나오는 지 알 수 있을까요?
스프링을 공부하다가 람다, 스트림에 대한 학습이 부족해서 막혔는데 혹시 고급 편 강의가 언제 나올 수 있을지 대략적이라도 알 수 있을까요?... 다른 시중 강의를 구매하고 볼지 아니면 김영한 님 강의를 기다릴지 고민입니다
-
해결됨코딩테스트 [ ALL IN ONE ]
문제풀이 singly linked list - head&tail에서 '마지막 노드 제거'하는 함수 부분
안녕하세요~ 요즘 파이썬 알고리즘에 대해 알아가는게 선생님 덕분에 너무 재미있습니다!그런데 선생님이 제공하신 문제풀이 singly linked list - head&tail에서 '마지막 노드 제거'하는 함수 부분이 혹시 잘못된 것인가 해서 여쭈어 봅니다. # 시간복잡도 O(n) def remove_back(self): current = self.head last_index = self.size - 1 for _ in range(last_index - 1): current = current.next_ current.next_ = current.next_.next_ self.tail = current.next self.size -= 1 함수에서 나오는 self.tail = current.next로 되어있는데,self.tail = current로 작성해야 하는게 아닐까요?혹시 제가 틀렸다면 설명해 주시면 감사하겠습니다~
-
해결됨김영한의 실전 자바 - 중급 2편
3. 컬렉션 프레임워크 - ArrayList 강의 교안 오타 제보
[오타 제보 내용]3. 컬렉션 프레임워크 - ArrayList 교안 pdf직접 구현하는 배열 리스트2 - 동적 배열배열의 크기를 초과할 때(5) 이렇게 증가된 배열에 데이터를 추가하면 된다. 물론 데이터가 추가되었으므로 size 도 하나 증가시킨다.기존 배열( x001 )은 더는 참조하는 곳이 없으므로 GC의 대상이 된다.그림에서는 x100으로 나와있는데, 교안에는 기존 배열의 주소를 x001로 표시하고 있습니다.기존 배열의 주소값 확인 부탁드립니다.직접 구현하는 배열 리스트3 - 기능 추가주제 내용 맨 첫 부분에 나오는 add(Index, 데이터)와 remove(Index)의 파라미터가 Index라고 I가 대문자로 나와 있습니다.i(소문자) 확인 부탁드립니다.감사합니다.
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
BOJ23246
N = int(input())words = [list(map(int, input().split())) for _ in range(N)]medal = sorted(words, key= lambda x : (x[1]*x[2]*x[3], x[1]+x[2]+x[3]))for i in range(0,3): print(medal[i][0], end = ' ') 다음은 제가 짠 코드입니다. n = int(input())infos = [list(map(int, input().split())) for _ in range(n)]infos = sorted(infos, key=lambda x : (x[1] x[2] x[3], x[1] + x[2] + x[3], x[0]))for b, p, q, r in infos[:3]: print(b, end=' ') 이건 알리님 코드인데요,마지막 for문 빼고는 똑같은데, 이상하게 제거는 틀렸다고 뜨네요.시간 복잡도 때문일까요?? 이유 알려주시면 감사하겠습니다
-
미해결독하게 C를 배운 사람을 위한 선형 자료구조
CPU의 다른 이름 Machine 강의 질의
안녕하세요.강의를 보다가 학습과는 크게 상관없는 부분이지만 잘못 언급을 하신것 같아서 질문 게시판에 글을 남깁니다.UNIX 운영체제를 만드신, 켄톰슨 선생님이 돌아가셨다고 얘기하시는 부분이 있는데켄톰슨 선생님이 아니고 데니스 리치 선생님을 얘기하신다는게 잘못 얘기하신게 아닌가 생각이 듭니다.별거 아니긴 한데, 멀쩡히 살아계시는데 돌아가셨다고 하신 부분이 그냥 찝찝해서 글 남깁니다. 좋은 하루 되세요!!
-
미해결김영한의 실전 자바 - 중급 2편
문제와 풀이4 - Queue
안녕하세요 영한님 🙂 항상 감사한 마음으로 강의 잘 듣고 있습니다 ㅎㅎ별거 아닌 오탈자이긴 한데, 큐 두번째 문제에서 실행 결과 부분 오탈자가 있어서 말씀드립니다! "작업 시작" -> "==작업 시작==""작업 완료" -> "==작업 완료=="
-
미해결세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
BOJ6603질문있습니다!
안녕하세요.문제 풀다가 강의랑 백준 페이지에서는 입력할수 있는 k의 범위가 서로 달라서 궁금해서 여쭤봅니다.!!백준 페이지에서는 입력할 수 있는 k의 범위가 6<k<13인데요 강의나 노션에서는 제약 조건이 6 <=k <= 13인데 혹시 시간복잡도를 구하기 위해서 일부러 범위를 이렇게 잡은 건지 혹시 다른 이유가 있는지 알려주실 수 있을까요?
-
미해결오픈소스 자료구조 및 알고리즘 in C
Insert_data에서 prev_tmp를 지웠을 때, 성능향을 기대할 수 있을까요?
제 생각으로는 성능 향상이 거의 없다고 생각이 되는데, 궁금합니다!1 . 트리의 특성 상, Insert 내의 While() 1번은 사실 상 2^n개의 데이터를 순회하는 효과니까 데이터가 정말 많아도 100번 이하로 돌 것 같습니다. 2. 대입문 1개는 지우는건 어셈블리 1줄을 지우는 거니까, 100줄 정도의 어셈이 사라지는 것인데, 이게 큰 성능향상인지 궁금합니다!
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
graph
dfs 영상을 쭉 보고있는데요 ㅎ문제들 마다 규칙이거의 무조건적으로 visited 와 2차원 graph 가 생성이 되나요 ??visited = []graph = [[False] *MAX for _ in range(MAX)]2. MAX 를 두시는 이유가 뭔가요 ??
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
재귀 함수 Depth
영상에서 23:48 부분 보고있는데요.칼럼 2에 5를 제일 하단에다가 적었는 이유가 어떤 규칙이 있는건가요 ??그리고 5 옆에는 비워두고 1 ( 무시 ) , 2 ( 무시 ) 6을 적으신것도 어떤 규칙이 있는건가 ? 궁금해서 여쭤봅니다 !
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
백준 DFS
백준을 기준으로 하시는 이유가 있나요 ??
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
백트래킹 관련해서 질문 드립니다!
n = int(input()) # 식재료 개수 minimums = list(map(int, input().split())) # 최소 영양소 기준 ingredients = [list(map(int, input().split())) for _ in range(n)] # 재료들 # 선택한 식재료를 담을 배열 초기화 picked = [] result_picked = [] # 최소 비용 초기화 (정답값) min_cost = 987_654_321 # 조건 확인 def is_bigger(sum_nutrients): global minimums for i in range(4): if sum_nutrients[i] < minimums[i]: return False return True # subset 구하기 def recursion(k): global picked, min_cost, result_picked if k == n: # 재료를 모두 선택했다면 # 뽑은 재료가 조건에 만족하는지 확인 # picked의 영양소들의 합이 minimums의 각 최소 영양소보다 커야 함 # 뽑은 재료의 각 영양소의 합을 담기 sum_nutrients = [0, 0, 0, 0] sum_cost = 0 for i in range(len(picked)): sum_cost += ingredients[picked[i]][4] # 비용 담기 for j in range(4): sum_nutrients[j] += ingredients[picked[i]][j] # 최소 영양소보다 큰 지 확인 # 근데 사전 순으로 가장 빠른 것을 출력해야 한다. # 어떻게 ? if is_bigger(sum_nutrients) and sum_cost <= min_cost: if sum_cost < min_cost: min_cost = sum_cost # 최소 비용 업데이트 result_picked = picked[:] # 선택한 배열 저장 elif sum_cost == min_cost and picked < result_picked: result_picked = picked[:] return # 뽑은 재료의 인덱스를 picked에 담고 picked.append(k) recursion(k + 1) # 다음 재료 선택 # 재료 선택 안하는 경우엔 picked.pop() # 현재 재료를 빼고 recursion(k + 1) # 다음 재료 선택 recursion(0) # 출력 if min_cost == 987_654_321: print(-1) else: print(min_cost) res = [x + 1 for x in result_picked] print(*res) 19942 다이어트 문제입니다.저는 항상 백트래킹 할 때 이렇게 매개변수를 그냥 간단히 하는 식으로 하는데, 강사님은 매개변수에다가 설정을 하시더라구요강의보면서 직관적이기도 하고 되게 좋은 방법이라고 생각했는데,이렇게 해도 상관없나요?
-
미해결김영한의 실전 자바 - 중급 2편
comparable 질문
안녕하세요.강의에서 다음의 코드를 비교한 걸 보여주셨을 때 콘솔에 출력되는 개수가 다른데 왜 그런걸까요 ? 자바 버전에 따라 내부 구현된 정렬 알고리즘이 달라서 그럴까요 ? (강의는 출력 2개)@Override public int compareTo(MyUser o) { System.out.println(this + "vs " + o); return this.age < o.age ? -1 : (this.age == o.age ? 0 : 1); }MyUser{id='B', age=10}vs MyUser{id='A', age=30}MyUser{id='C', age=20}vs MyUser{id='B', age=10}MyUser{id='C', age=20}vs MyUser{id='A', age=30}MyUser{id='C', age=20}vs MyUser{id='B', age=10}
-
미해결김영한의 실전 자바 - 중급 2편
shuttle.showinfo를 호출시 실행창 질문
package generic.test.ex3 object UnitPrinter { //제네릭 메서드 fun <T : BioUnit>printerV1(t: Shuttle<T>){ println(t.showInfo()) } fun printerV2(shuttle: Shuttle<out BioUnit>){ println(shuttle.showInfo()) } fun <T : BioUnit>printerV3(t: Shuttle<T>){ val unit = t.out() println("이름: ${unit.name} hp:${unit.hp}") } fun printerV4(shuttle: Shuttle<out BioUnit>){ val unit = shuttle.out() println("이름: ${unit.name} hp:${unit.hp}") } }자바와 코틀린은 100퍼센트 호환이 된다고 해서 코틀린으로 강의를 보고있습니다.강의에선 v1과 v2로 인자로 받은 셔틀에서 unit을 꺼내어 내용을 출력했는데요. 그렇게 안하고 셔틀에서 바로showinfo를 호출해서 실행창에name : 마린 hp : 40kotlin.Unitname : 마린 hp : 40kotlin.Unit이렇게 줄바꿈으로 kotlin.Unit이라는게 자동적으로 붙는데 왜이런건가요 . 강의에서처럼 unit을꺼내어서 출력하면 안붙습니다.
-
해결됨이공계열 전공자를 위한 컴퓨팅사고와 인공지능
공지
강좌 운영이나 강의 내용에 관해 궁금한 점이 있으면 자유롭게 나누어주세요.교수자, 수강생 누구나 글쓰기와 댓글 쓰기가 가능합니다.
-
미해결데이터 사이언스 입문자를 위한 파이썬 및 통계
공지
강좌 운영이나 강의 내용에 관해 궁금한 점이 있으면 자유롭게 나누어주세요.교수자, 수강생 누구나 글쓰기와 댓글 쓰기가 가능합니다.
-
해결됨머신러닝, 딥러닝 입문 : 알고리즘 이해하기
공지
강좌 운영이나 강의 내용에 관해 궁금한 점이 있으면 자유롭게 나누어주세요.교수자, 수강생 누구나 글쓰기와 댓글 쓰기가 가능합니다.
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
graph를 2차원 배열 또는 List로 하는 기준을 어떤식으로 잡으면 좋을까요...?
아직 2차원 배열 또는 List로 해야되는것을 선택하는 기준이 잘 안잡히는데 문제에서 원하는 출력 형태가 연결된 모든 것들을 출력하는 느낌으로 질문한다면 List 이고, 그외에는 2차원 배열로 하면 될까요...? ㅠㅠ