묻고 답해요
143만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
섹션2. 브루트 포스[문제 풀이] : BOJ1182. 시간복잡도 100만 vs 1억
안녕하세요, 강의 감사합니다.섹션2. 브루트 포스[문제 풀이] : BOJ1182 에 질문이 있습니다.부분수열의 수가 100만이고 1억 보다 작아서 브루트 포스로 풀 수 있다고 하셨는데, 보통 경우의 수가 1억 미만 인지를 그러면 확인 하면 될까요??1억을 선택하신 기준이 궁금합니다. 1000만은 가능한가요?
-
해결됨김영한의 실전 자바 - 중급 2편
System.out.println(set)의 시간 복잡성
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이 코드에서 System.out.println(set)의 경우는 O(n)이 맞을까요?
-
미해결비전공자의 전공자 따라잡기 - 자료구조(with JavaScript)
한번에 이해 안가는 제가 비정상 일까요...?
해시 테이블까지 재밋었는데 레드 블랙트리 너무 어려운것 같습니다 ㅠㅠ...반복 숙달이 답이겠죠?
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
BOJ 1759 문제 오답이 생기는데, 어느 부분이 틀리는 것인지 설명 부탁드립니다.
안녕하세요, 좋은 강의 만들어주셔서 감사합니다.'조합 알고리즘' 부분 진도 나가고 있는데, 다음과 같이 시도했더니 오답이 떴습니다.아예 처음부터 L개의 원소를 뽑아 조합을 만든 다음,모음과 자음의 갯수가 미달되면 해당 조합은 지우는 방식으로 시도해봤는데,(for문이 세개나 나와서 좀 조잡한 풀이 같아 보이긴 하지만..ㅠㅠ)이 풀이가 틀리게 되는 이유를 혼자 힘으론 찾기가 어려워서 도움을 구해봅니다...!from itertools import combinations L, C = input().split() chars = list(input().split()) mo = ['a', 'e', 'i', 'o', 'u'] candidates = list(combinations(chars, int(L))) for can in candidates: mo_num, ja_num = 0, 0 for i in can: if i in mo: mo_num += 1 else: ja_num += 1 if mo_num < 1 or ja_num < 2: candidates.remove(can) sol = [] for ans in candidates: ans_str = '' for i in sorted(ans): ans_str += i sol.append(ans_str) for i in sorted(sol): print(i)
-
미해결김영한의 실전 자바 - 중급 2편
HashIndex() 와 capacity에 대해
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의를 듣던 중 의문이 생겨 질문 드립니다.메모리 최적화를 위해 value % capacity 를 통해 HashIndex 를 얻고, 이를 통해 메모리 최적화와 검색, 조회 속도 등에서 이점을 얻을 수 있다는 것은 이해가 됐습니다.그런데, List 의 배열 특성상, capacity가 동적으로 변하게 될텐데, 이에 따라 동일한 value 를 넣어도 다른 hashIndex가 만들어지지 않을까요?학습용이라 가장 심플한 방법으로 보여주신 것 뿐일까요?
-
미해결김영한의 실전 자바 - 중급 2편
if 문 작성 시 else 도 함께 작성해주는 것이 좋나요?
문제 1번의 경우 if 구문을 사용할 때 저는 else 를 안 넣고 바로 return 으로 표현했거든요.static <T extends BioUnit> T maxHp(T unit1, T unit2) { if (unit1.getHp() > unit2.getHp()) { return unit1; } return unit2; }답안엔 else 를 같이 쓰는 것으로 나와서 혹시 else를 쓰고 안 쓰고를 결정하는 메뉴얼이나 혹은 더 좋은 코드의 기준이 있을까요?=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
1090 아이디어 3번 질문
1090번 문제 3번째 아이디어가 잘 이해가 안돼서 질문 드립니다.제가 이해한 바로는, 최소거리를 구하는 것을 요구하고 있으니깐,특정 인물이 특정 집으로 가기 위한 거리를 각각 저장해둔 뒤에2명이 모였을 때 최소거리를 구할 때에는 각각 저장해둔 값 중 둘이 더했을 때의 최소값을,3명이 모였을 때의 최소거리를 구할 때에는 동일하게 저장해둔 값 중 셋 더했을 때의 최소값을구하는 방식으로 최소 거리를 구하는 것이 맞나요? 영상에서 설명해주실 때에는 [1,2,3] , [3,4,5], [2,2,5]의 예시를 들어주셨는데2명이서 모였을 때 최소거리는 둘이 합했을 때 가장 적은 1+2 즉 3이 되는거라고 설명해주셨습니다. 하지만 저장한 값이 특정 집에서 다른 사람의 거리를 저장한 것이므로 한 사람은 본인의 집에, 다른 사람은 최소 거리만큼 이동하여 0+1 즉, 2명이 모였을 때 최소거리는 1이 되는 것 아닌가용..? 제가 잘 이해를 못해서 질문 드립니다 .
-
미해결그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
안녕하세요~ 블로그 정리 요약 관련 문의 드립니다!
안녕하세요~ 개발자 취준 준비중인 취준생입니다! 다름아니라 제가 여러 알고리즘 강의들을 봐오면서 감자님 강의가 제일 설명이 잘 되어있어서 심화까지 사서 열심히 듣는 중인데요! 제 개인 블로그 (벨로그이고 수익 창출은 전혀 안합니다.)에 공부용으로 내용을 정리해도될지 여쭈어보고 싶습니다! 물론 강의 그림자료는 첨부 안하고 말씀 하신 내용만 정리해서 게시글을 정리할 생각이고 출처는 무조건 남기려고 합니다!
-
해결됨김영한의 실전 자바 - 중급 2편
Node<E> 와 <E> E 차이점
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. Node<E> 와 <E> E 헷갈려서 질문을 드립니다.Node<E> 는 배열안의 값을 E 타입으로 고정하는걸로 이해하면 되나요?
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
강의 내용 BOJ3085 질문 있습니다
변화만 생기는 곳만 체크한다고 하셨는데, 예로 들어 한 행의 두 원소를 바꾸면 그 두 원소의 열과 그 행을 살펴보면 된다고 하셨는데, def get_best(y, x): global N, matrix best = 0 # columns bef = '-' value = 0 for j in range(N): if bef == matrix[y][j]: value += 1 else: value = 1 bef = matrix[y][j] best = max(best, value) # rows bef = '-' value = 0 for i in range(N): if bef == matrix[i][x]: value += 1 else: value = 1 bef = matrix[i][x] best = max(best, value) return best 왜 바꾼 원소 기준으로 그 원소 위치의 하나의 행과 열만 보는걸로 코드를 짜셨나요?설명과 코드가 달라서 약간 이해가 안 갑니다 ㅜ
-
미해결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줄 정도의 어셈이 사라지는 것인데, 이게 큰 성능향상인지 궁금합니다!