묻고 답해요
143만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
안녕하세요. 강사님께서 제공해주신 코드로 다른 문제를 풀려고 합니다.
안녕하세요. 강사님께서 제공해주신 이분탐색 1번 2번 코드중 2번 코드로 새로운 문제를 풀려고 합니다.1번 코드(left와 right 설정)으로는 잘 풀리는데 2번 코드(cur과 step 설정)로는 잘 안풀리네요. 백준 2343번 기타문제를 강사님께서 제공해주신 코드로 풀려고 아래와 같이 코드를 짜보았습니다. 하지만 원하는 결과를 얻지 못했는데요. 어떤 부분이 잘못된건지 알려주실 수 있을까요?? nums, blue_nums = map(int, input().split())bluelay_length = list(map(int, input().split())) def check(length): count = 1 current_length = 0 for i in bluelay_length: if current_length + i <= length: current_length += i else: current_length = i count += 1 return count == blue_nums cur = 0steps = 10000+1 while steps > 0: while cur + steps <= 10000+1 and check(cur + steps): cur += steps steps //= 2 print(cur) 감사합니다.
-
미해결김영한의 실전 자바 - 중급 2편
해당 코드는 삽입정렬인가요?
package collection.compare; import java.util.Arrays; import java.util.Comparator; public class SortMain2 { public static void main(String[] args) { Integer[] array = {3, 2, 1}; System.out.println(Arrays.toString(array)); System.out.println("Comparator 비교"); Arrays.sort(array, new AscComparator()); System.out.println("AscComparator: " + Arrays.toString(array)); } static class AscComparator implements Comparator<Integer> { @Override public int compare(Integer o1, Integer o2) { System.out.println("o1=" + o1 + " o2=" + o2); return (o1 < o2) ? -1 : ((o1 == o2) ? 0 : 1) ; } } }이 코드는 삽입정렬이 사용되어 배열의 첫 번째 요소가 정렬된 것으로 간주하고 시작하는게 맞을까요...?o1=2 o2=3o1=1 o2=2이렇게 두 단계만 거치는 이유와 o1, o2를 잡는 기준을 잘 모르겠습니다...
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
저.. 시간복잡도 관련 질문입니다.(로직 거의 비슷한 거 같은데, 시간초과가 나서요)
안녕하세요, 강의를 듣고 계신 여러분!여러분의 학습을 돕기 위해 질문 안내를 드리고자 합니다. 1. chatGPT를 이용해보기단순한 의문은 chatGPT를 이용해도 해답을 찾을 수 있는 경우가 종종 있습니다! 2. 강의의 어떤 부분에 대한 질문이고, 어떤 부분이 궁금한지 명확히 알려주세요!강의의 어느 파트에서 의문을 느끼고, 어떤 부분이 궁금한지를 명확히 제시해 주시면 답변에 도움이 됩니다!자신은 어떻게 이해했는지 또한 적어주면 좋습니다! 강의 중 브루트포스 알고리즘 마지막백준 1342번 행운의 문자열 문제입니다.순열로 접근한 처음 코드 시간 초과 후선생님 강의 설명을 들으면서 백트래킹으로 수정했는데요,근데,, 로직은 거의 차이가 없고다만 초기화나 선언 등 순서의 차이 같은데,저는 시간 초과를 해결 하지 못했고,선생님 코드를 복붙,,, 했더니 성공하더라구요 😓그래서 어떤 차이 분석을 할 수 있을지 질문 남깁니다.코드는 아래와 같고 풀이2번을 참고하였습니다.(시간초과 코드입니다)import sys input = sys.stdin.readline s = input() choice = [] dic = dict() chars = set() cnt = 0 for l in s: chars.add(l) if l not in dic: dic[l] = 0 dic[l] += 1 def dfs(level): global cnt, choice, dic if level == len(s): cnt += 1 return for l in chars: if dic[l] == 0: continue if (not choice) or (choice[-1] != l): dic[l] -= 1 choice.append(l) dfs(level + 1) dic[l] += 1 choice.pop() dfs(0) print(cnt)
-
미해결2주만에 통과하는 알고리즘 코딩테스트 (2024년)
수업 자료 솔루션 코드와 강의 중의 코드를 일치시켜주세요
저는 강의를 한번 다듣고나서 강의 도중 강사님께서 코드 작성하신것을 바탕으로 백준 문제에 대한 풀이를 수행하고 있습니다.그러다 보니 문제 풀이가 기억이 안나거나 헷갈리는 부분이 있을때 수업 자료의 솔루션 코드를 참고하고자 하는데, 그럴때마다 수업 도중 본 코드와 상이하여 당황스럽습니다.강의 중 짠 코드를 바탕으로 수업자료 끝의 솔루션 코드를 작성해주시면 더 도움이 될것 같습니다.
-
해결됨김영한의 실전 자바 - 중급 2편
교안에 잘못된 부분이 있는 것 같습니다
컬렉션 프레임워크 / Collections 정렬 관련 메서드 에서reverse 메소드에 대한 설명이 "정렬 기준의 반대"로 컬렉션을 정렬한다고 되어있는데단순히 reverse메소드는 현재 컬렉션이 정렬되어 있는 것을 뒤집어 주는 메소드 인 것 같습니다
-
미해결세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
파일을 찾을 수 없다 뜹니다..! (세팅 관련 질문)
안녕하세요, 강의를 듣고 계신 여러분!여러분의 학습을 돕기 위해 질문 안내를 드리고자 합니다. 1. chatGPT를 이용해보기단순한 의문은 chatGPT를 이용해도 해답을 찾을 수 있는 경우가 종종 있습니다! 2. 강의의 어떤 부분에 대한 질문이고, 어떤 부분이 궁금한지 명확히 알려주세요!강의의 어느 파트에서 의문을 느끼고, 어떤 부분이 궁금한지를 명확히 제시해 주시면 답변에 도움이 됩니다!자신은 어떻게 이해했는지 또한 적어주면 좋습니다! ash: python: command not found[Finished in 16ms with exit code 127][shell_cmd: python -u "/Users/sindonghui/Desktop/test.py" < input.txt][dir: /Users/sindonghui/Desktop][path: /Library/Frameworks/Python.framework/Versions/3.12/bin:/Library/Frameworks/Python.framework/Versions/3.8/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin] 밑에 이렇게 떠요 ex) 섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의에서 DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해했습니다. 그러면 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요? 어느 파트섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의자신은 어떻게 이해했는지DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해어떤 부분이 궁금한지 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요?
-
미해결김영한의 실전 자바 - 중급 2편
remove 메소드 관련 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]데이터를 삭제하는 기능에서 removeNode를 null값으로 처리하는 이유가 있을까요?removeNode를 더 이상 사용되지 않는 것 같은데, 해당 노드의 item과 next를 null값으로 처리해야만 GC 대상이 되는건가요? null값으로 명시하지 않아도 될 것 같아 질문드립니다. // 추가 코드 public Object remove(int index) { Node removeNode = getNode(index); Object removedItem = removeNode.item; if (index == 0) { first = removeNode.next; } else { Node prev = getNode(index - 1); prev.next = removeNode.next; } removeNode.item = null; removeNode.next = null; size--; return removedItem; }
-
미해결김영한의 실전 자바 - 중급 2편
문제 4번 관련 질문입니다.
public class ItemPriceTest { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("사과", 500); map.put("바나나", 500); map.put("망고", 1000); map.put("딸기", 1000); // 코드 작성 ArrayList<String> list = new ArrayList<>(); for (Map.Entry<String, Integer> entry : map.entrySet()) { if (entry.getValue().equals(1000)) { list.add(entry.getKey()); } } System.out.println(list); } } 여기서 entry.getValue() 의 비교를 == 으로 바꿔도 돌아가는데 상관없을까요? 객체의 경우 == 이냐, equals냐에 따라 동일성, 동등성 비교로 나뉘는거같은데 이와같이 값 비교 할 땐 둘 다 사용할 수 있는걸까요? == 을 사용해도 망고, 딸기가 출력되어 여쭤봅니다 [질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결Do it! 알고리즘 코딩테스트 with Python
나머지 합 구하기 핵심 아이디어 문의
안녕하세요. 나머지 합 구하기 핵심 아이디어 중 첫 번째 (A+B)%C는 ((A%C) + (B%C)) % C와 같다. 는 것은 본 문제를 푸는 데에는 직접적 관련이 없는 것 같은데 어떻게 관련이 되어 있는지 궁금합니다. 문제가 연속된 부분의 합의 나머지를 구하는 것인데,(A[i+1] + ... + A[j])%M = (S[j] - S[i])%M이 되고, 나머지 연산이 linear 연산이기 때문에(S[j] - S[i])%M = 0이라면S[j]%M = S[i]%M 이라고 할 수 있을 것 같아서요. 이 경우에 핵심 아이디어 2번째, 3번째로도 문제 풀이가 가능한 것 같은데, 핵심 아이디어 1번째는 어떤 역할을 하는지 궁금합니다. 감사합니다.이 되어
-
미해결김영한의 실전 자바 - 중급 2편
collection 디렉토리 안에 map 포함
collection 인터페이스에 map 인터페이스가 속하지 않는다고 말씀해주셨는데 디렉토리를 collection에 만드신 이유가 있을까요? 검색해보니 Map을 컬렉션이라고 보기도 하지만 자바에선 컬렉션에 해당하지 않는다고 애매하게 나오네요...
-
미해결김영한의 실전 자바 - 중급 2편
강의 질문
Regular languages: deterministic and non-deterministic finite automata, regular expressions. Context-free languages: context-free grammars, push-down automata. Turing machines, the Chomsky hierarchy, and the Church-Turing thesis. Introduction to Complexity Theory and NP-Completeness. 안녕하세요 선생님. 항상 강의 잘 듣고 있습니다. 혹시나 이거를 다루어주시는 강의가 혹시 있을까요?
-
미해결김영한의 실전 자바 - 중급 2편
매개변수 명명 관련 질문입니다.
매개변수 이름을 element와 value로 구분하시는 이유가 있을까요? public interface Myset<E> { boolean add(E element); boolean remove(E value); boolean contains(E value); }
-
미해결2주만에 통과하는 알고리즘 코딩테스트 (2024년)
최적화 1번 문제에서 단맛과 짠맛의 곱과 합이 거꾸로 설정된것 같아요.
아무리 코드를 봐도 잘못된게 없어서 백준 사이트 확인해보니 단맛 입력인 A 끼리는 곱하고 짠맛인 B 끼리는 더해야 해당 입력에 대한 올바른 출력값 (문제에서는 1) 이 나옵니다. 그냥 recur(idx+1, dan+ingre[idx][1], zzan*ingre[idx][0], use+1) 이렇게 인덱싱만 바꿨습니다. 아니면 제가 혹시 문제를 잘못 이해한걸까요..?
-
미해결김영한의 실전 자바 - 중급 2편
Card 객체의 suit
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이번 강의를 시청하고 enum을 제대로 공부를 안했구나 느껴서 다시 중급1편을 보고 왔는데도 Card 객체에서 suit를 생성자로 값을 주입하는걸 너무 이해가 안됩니다. enum타입은 상수라서 그냥 생성자를 이용해서 넣지않고 바로 사용하면 되는거 아닌가요? compareTo, toString에 사용하기 위해 생성자를 이용해서 주입을 하신건가요?
-
미해결김영한의 실전 자바 - 중급 2편
정적 메서드 사용 시 public 여부
private 으로 사용하는 경우는 명확히 붙여주는거같은데 public 의 경우 붙이는 경우도 있고 안 붙이는 경우도 있는 것 같아서 질문드립니다. 혹시 기준이 있을까요?
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
위치를 데스크톱에 두었는데 cmd+b로 빌드를 해봐도 결과값이 안 나옵니다..!
안녕하세요, 강의를 듣고 계신 여러분!여러분의 학습을 돕기 위해 질문 안내를 드리고자 합니다. 위치를 데스크톱에 두었는데 cmd+b로 빌드를 해봐도 결과값이 안 나옵니다..!1. chatGPT를 이용해보기단순한 의문은 chatGPT를 이용해도 해답을 찾을 수 있는 경우가 종종 있습니다! 2. 강의의 어떤 부분에 대한 질문이고, 어떤 부분이 궁금한지 명확히 알려주세요!강의의 어느 파트에서 의문을 느끼고, 어떤 부분이 궁금한지를 명확히 제시해 주시면 답변에 도움이 됩니다!자신은 어떻게 이해했는지 또한 적어주면 좋습니다! ex) 섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의에서 DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해했습니다. 그러면 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요? 어느 파트섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의자신은 어떻게 이해했는지DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해어떤 부분이 궁금한지 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요?
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
좋은 풀이란 무엇일까요?
안녕하세요, 문제를 푸는 도중에 갑자기 궁금증이 생겨 질문 드립니다.4779 재귀문제를 푸는데, 예제 출력을 분석하지 않은? 상태에서 문제만 가지고 직관적으로 문제를 해결하려 했습니다.먼저 선을 만들고, 선을 3으로 나누면서 몫이 0이 되면 선을 리턴하고, 그렇지 않으면 계속 나누는 방법을 생각했습니다.def cantor(n): line = '-' * (3 ** n) def divide(part): if len(part) == 1: return part N = len(part) // 3 return divide(part[:N]) + ' ' * N + divide(part[-N:]) return divide(line) n = int(input()) result = cantor(n) print(result)강의에서는 예제 출력을 보고 케이스마다 공백이 있는 것을 확인하여 공백에 3^(k-1)을 넣어줘서 푸셨는데, func() + 공백 + func() 형식으로 recursive case를 푸는 방법은 전혀 생각이 안났습니다.경험이 많이 없어서 강의대로 푸는 방법이나 스킬을 익혀야 하는지, 아니면 직관적으로 푸는게 좋은지 궁금합니다.직관적으로 푸는게 나쁜건 아닌데 강의대로 푸는게 더 구현이 편한 것 같기도 해서 질문드려요.좋은 강의 감사드립니다 🙂
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
BOJ1461 제일 먼 곳은 가장 나중에 가는 것이 이득아닌가요?
먼 곳을 먼저가게 되면 돌아오는 만큼의 거리를 손해보게 되는데 가장 먼 곳을 나중에 가는 게 이득이 아닌가해서 질문을 남겨봅니다.
-
미해결김영한의 실전 자바 - 중급 2편
자료구조 제네릭 타입
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Set, List, Map 등 자바에서 제공하는 자료구조에 제네릭 타입을 특정해서 정하지 않고, Object로 사용하면 하나의 자료구조에 여러 가지 데이터 타입을 저장하고 관리할 수도 있을 것 같은데선생님 수업에서는 거의 Integer 혹은 String으로 제네릭 타입을 정하고 사용을 하시는 부분이 많더라구요.궁금한 점은 제네릭 타입을 Object로 사용하는 것이 타입 안정성 때문에 보통은 사용을 안 하는 건지 만약 사용을 한다고 할때 자료구조의 메서드 사용에는 문제 없는지 알고싶습니다.
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
인덱스정렬 강의, 04_ListAndIndex질문드립니다.
안녕하세요 강사님04_ListAndIndex의 원본 코드의 signleList.c파일의SearchByIndexAgeRange함수의 354번째 줄 라인에서int length = idxMax - idxMin + 1; USERDATA** aSelected = malloc(sizeof(void*) * length); memcpy(aSelected, aList + idxMin, sizeof(void*) * length);와 같이 aSelected의 리턴 타입이 USERDATA** 인데왜 malloc으로 생성할때, "malloc(sizeof(void*) * length);"로왜 void*의 size만큼 생성해주는지 잘 모르겠습니다.USERDATA** aSelected = malloc(sizeof(USERDATA*) * length);다음 위의 코드처럼 "malloc(sizeof(USERDATA*) length);"즉, USERDATA*의 size가되어야 알맞지 않나요??아니면 USERDATA*와 void* 모두 크기가 8byte라서 메모리가 할당되는 크기가 같은건가요?? 제가 알고 있는 개념이 맞는걸까요??강의 잘 듣고있습니다 감사합니다.