묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
9375번 질문입니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! t가 2번째에서 t가 1번째 옷의 종류와 겹칠 수 있을 경우의 수가 있을 거 같아요 _map.clear()는 안해도 되는건가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
공부방법에 대한 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 교안을 공부하다가 진도가 잘 안나가서 일단 잘모르는 건 넘어가고 문법의 경우에는 다시 찾아볼생각으로 교안은 가볍게 한번씩 쳐보기도 하고 개념강의 보면서 문제 풀려고 하는데 맞게 하고 있는 걸까요? 그리고 수학적 사고력이 부족한 거 같으면 이산수학 같은 전공수학공부도 따로 해야 할까요?
-
미해결김영한의 실전 자바 - 중급 2편
변수 작명하신 부분에 궁금증이 있습니다!
<섹션 2 - 제네릭이 필요한 이유>부분인데요. IntegerBox 클래스는 set 메서드에 변수가 value로 작명 되어있습니다. 그러나,StringBox 클래스는 set 메서드에 변수가 object로 작명 되어 있습니다.StringBox에 set 함수 매개변수에, String str이 아니라, String object라고 하신 이유가 혹시 있는걸까요? String str이라고 해도 물론 되겠지만, 혹시 "String object"로 매개변수를 받도록 하신 특별한 의도가 있는건가 싶어서요.
-
미해결김영한의 실전 자바 - 중급 2편
arrayList 다운 캐스팅 오버헤드에 대한 질문이 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 영한님 강의 잘 수강하고 있습니다 😀 수강중 한가지 궁금한 점이 생겨 질문드립니다.arrayList에서 제너릭을 사용시 타입 이레이지에 의해 컴파일시 Obejct로 타입이 변경된다고 알고 있습니다. 당연히 그과정에서 값을 꺼내면 (예를들어 String을 꺼낸다고 가정) Object -> String으로 다운 캐스팅이 되어야 한다고 이해하고 있습니다.이렇게 되면 개발자의 의도와 다른 다운 캐스팅이 발생하게 되고 이런 캐스팅은 리스트와 같은 복수개의 데이터를 다루는 컬렉션에서 오버헤드를 크게 발생시킬수도 있겠다는 생각을 하게 되었습니다. 혹시 이러한 질문에 대한 내용이 맞는지와 맞다면 어떤방식으로 개선할 수 있을지 의견을 구할 수 있을까요??
-
미해결카카오 코테 6주 합격! 실전 파이썬 코딩테스트
bisect 활용법에서 궁금한 점이 있습니다.
저희 강의 내용 중에서 내장모듈 bisect에 대한 설명 글에서 궁금한 점이 있어서 질문 드립니다. 내림차순이라면, reverse=True 를 사용할 수 있다고 하셨는데 bisect 모듈 안에는 reverse 라는 인자가 없다고 나옵니다. 어떻게 사용해야할까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
코테 합격권
안녕하세요 큰돌님..!이번 넷마블 코테 공채를 보고 왔는데 5문제 중 3문제를 맞췄습니다.3문제는 3시간중 1시간안에 풀었고 뒤에 2문제를 2시간 고민하다 못 풀었습니다.난이도는 3문제는 쉬운편이었다고 생각하는데, 이정도면 서류는 봐줄까요..?물론 시험마다 달라서 발표 전까지 확실한 것은 없겠지만 코테 강사이신 큰돌님의 감?으로 대충 말씀주셔도 괜찮습니다!!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-J 질문있습니다.
이제 슬슬 혼자풀어가는 문제들이 나오기 시작하네요!http://boj.kr/c30eb4ca4fff412aa41d4f5189e84146이렇게 작성했는데 큰돌님이랑 많이 달라서 비효율적인가 고민이 됩니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8-F
for(int i = 1; i <= 3; i++){ ret = min(ret, 1 + f(pos, mod(x + i * flag), y, z, flag)); ret = min(ret, 1 + f(pos, mod(x + i flag), mod(y + i flag), z, flag)); ret = min(ret, 1 + f(pos, mod(x + i flag), mod(y + i flag), mod(z + i * flag), flag)); }f 함수의 저 부분에서 탐색 할때 1~3번 돌리는 경우, 현재 위치부터 현재 위치+3까지 변하는 경우를 다 체크하는데 왜 방향은 그대로 두는건가요? 방향도 계속 시계방향과 반시계방향을 번갈아 줘야한다고 생각하는데 그렇지 않아도 답이 나오는 이유가 너무 궁금합니다.for (int j=0; j<2; j++) 해서 flag도 변경해줘야하지 않나요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-M 질문있습니다 :)
안녕하세요 선생님 🙂 문제에서 이해가 되지 않는 부분이 있어서 질문 드립니다. 2중 for문에서 i = 0, j = 0, j < i 라는 조건이 있다면 i = 1로 해도 되지 않을까 싶어서 1로 했더니 cnt배열의 값들이 전부 틀어져버리더라구요. 아래의 코드를for (int i = 0; i < N; i++) { mx = 0; for (int j = 0; j < i; j++) { 아래와 같이 변경해봤습니다.for (int i = 1; i < N; i++) { mx = 0; for (int j = 0; j < i; j++) { 결과값이 다른 이유가 무엇때문인지 잘 모르겠습니다. 조언 부탁드립니다 🙂
-
미해결Do it! 알고리즘 코딩테스트 with JAVA
[P11726 2*N 타일채우기] top down 방식을 사용하니 런타임 에러가 발생합니다.
top down 방식을 사용하니 런타임 에러가 발생합니다. 이 문제는 bottom up으로만 풀어야하나요? 런타임 에러가 난 이유는 무엇일까요? import java.util.Scanner; public class Main { static long[] D; public static void main(String[] args){ Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); D = new long[n+1]; for(int i = 0 ; i < n+1 ; i++){ D[i] =-1; } D[1] =1; D[2] =2; long result = DP(n); System.out.println(result); } public static long DP(int n){ if(D[n] != -1){ return D[n]; } return D[n] = (DP(n-1) + DP(n-2)) % 10007; } }
-
해결됨김영한의 실전 자바 - 중급 2편
직접 구현하는 set1 - MyHashSet 코드 구현 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. MyHashSetV1 복습 할 겸 코드를 안보고, 만들고 있었습니다.그런데 계속 하다 보니, 코드를이런 코드 방식으로 하게 되는 데요.영한님 코드를 보니buckets[hashIndex] 에서 새로운 인스턴스 bucket을 만들어서 하시는 것을 보게 되는 데요. 이럴 때 에는 영한님의 코드를 보면서 고치고, 습관이 바껴질 때까지 코드를 치는게? 낳은가요? 아니면 저가 하는 코드 방식?if(buckets[hashIndex].contains(value)),buckets[hashIndex].add(value);이렇게 하는 것도 괜찮은가요?답변 부탁 드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R (1068번 : 트리) 문제 맞왜틀 질문있습니다.
안녕하십니까 선생님,1068번 문제 맞왜틀 질문 있습니다.http://boj.kr/b28a356d783849619b6e5d4081a06de2반례를 못찾겠습니다... 어느 부분이 틀렸는지 도와주시면 감사하겠습니다.
-
미해결세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
제가 이해한 칸토어집합 문제를 풀어서 써봤습니다.
나중에 강의를 복습 할 때 제가 어떤식으로 문제에 접근하고 이해하고 강의를 들었는지 회고 하기 위해서 기록 해둡니다. 또한 제가 이해한 부분이 다른 분들에게 도움이 되면 더 좋겠습니다.목표문자열 길이가 주어지면 길이가 1이 될때까지 - - 형태로 바꾸는 문제제약조건1 <= N <= 12어떻게 해결?입출력 결과를 보면 아래와 같이 추론이 가능하다.ans[0] = 3⁰ = 1 => -ans[1] = 3¹ = 3 => - -ans[2] = 3² = 9=> - - - -=> ans[2-1] + 3²⁻¹ + ans[2-1]결론적으로=> ans[i-1] + 3ⁱ ⁻ ¹ + ans[i-1]이러한 규칙을 찾을 수 있다.시간 복잡도칸토어 집합은 0부터 N까지 각 단계별로 3⁰ + 3¹ + 3² + ... 3¹² 만큼의 문자열을 처리해야 하므로 모든 합이 전체 연상량이다.0 <= N <= 12ans[0] ~ ans[12]ans[i]의 길이 : 3ⁱans[0] : 1ans[1] : 3ans[2] : 9- 위에 0,1,2일때 공백 - 합쳐서의 길이등비수열
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
남은 치즈관련 질문
안녕하세요 큰돌님. 남은 치즈가 몇개인지 확인하기 위해 cnt2 = v.size(); 하여서 나중에 출력하는 것으로 구현을 하셨는데 왜 v.size()를 변수에 할당해야하는 특별한 이유가 있을까요? cnt2라는 변수 없이 코드를 작성해도 통과과 되어 질문드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-A 질문있습니다 :)
안녕하세요 선생님 🙂 외판원 순회 문제 질문있습니다.dp를 비트플래그를 이용해서 방문여부를 체크한다는 아이디어가 정말 참신하게 다가오는 것 같습니다. 이 문제를 처음 접했을 때, 비트플래그가 아닌dp[MAX_N][MAX_N * MAX_N] 형태를 생각했었는데요, 이 방식으로 푼다면 배열의 범위가 dp[16][65536]이 아닌 dp[16][256]이 됩니다. 이게 시간복잡도와 공간복잡도 면에서 더 효율적이라고 생각이 들지만, 방문처리를 어떻게 해야할지 모르겠더라구요. 혹시 이렇게도 풀 수 있는 방법이 있을까요?
-
해결됨김영한의 실전 자바 - 중급 2편
코드오류 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.package collection.set.test; 의 RetangleTest 클래스에 관한 질문입니다package collection.set.test;import java.util.HashSet;import java.util.Set;public class RetangleTest { public static void main(String[] args) { Set<Retangle> retangleSet = new HashSet<>(); retangleSet.add(new Retangle(10,20)); retangleSet.add(new Retangle(20,10)); retangleSet.add(new Retangle(30,30)); for (Retangle retangle : retangleSet) { System.out.println(retangle); } }}중복된 값은 출력하지않아야하는데예시코드를 돌려보아도 중복된값을 출력하고있는 문제가있습니다package collection.set.test;import java.util.Objects;public class Retangle { private int width; private int height; public Retangle(int width, int height) { this.width = width; this.height = height; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Retangle retangle = (Retangle) o; return width == retangle.width && height == retangle.height; } @Override public int hashCode() { return Objects.hash(width, height); } @Override public String toString() { return "Retangle{" + "width=" + width + ", height=" + height + '}'; }}이거는 Retangle 클래스입니다hashCode , eqauls를 오버라이딩했는데도 중복출력이되네요
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8-K 펜윅트리 구간합 구하기 범위 질문 드립니다.
안녕하세요 큰돌님?오늘은 문제 입력의 범위가 이해가 안되서 질문 들고 오게 되었습니다.8-K 문제 입력 범위는 long long으로 이해가 됐는데요, 그에 맞게 tree 도 long long 까지 해설에서 선언을 해주셨습니다 근데 입력받는 n의 개수가 1~100만개 이므로tree 벡터 안에 구간합이 범위 초과가 나진 않는가요?worst로 (2^-63)-1 이 연속으로 들어오는걸 가정하고 있습니다. 이 문구 때문에 long long 그대로 진행해도 범위 초과가 안나는게 맞을까요? 답변 미리 감사합니다.
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
안녕하세요. 혹시 강의에 사용되는 자료 받을 수 있을까요
기본 개념 설명, 기본 연습문제 등 강의하실 때 사용하시는 슬라이드, 강의 노트 같은 자료도 받을 수 있을까요.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
변수 선언을 내부에서 해도 문제없나요?
안녕하세요 선생님. 강의 잘 보고 있습니다.당근카 답안코드에서 선생님은 큐와 ny nx를 메인 함수 내부에서 선언하셨습니다. 맨 처음에 사용할 모든 변수를 선언해놓는 것과 선생님의 방식 사이에서 궁금한 것이 생겼습니다. 제 생각에는 선생님의 방식대로면 상대적으로 조금 더 흘러가는 대로 자유롭게 코드를 짤 수 있을 것 같습니다. 하지만 혹시 코드가 복잡해지면 헷갈려서 실수 가능성이 올라가진 않을까 생각도 듭니다.그래서 그 둘을 그저 취향 차이로 여겨도 되는지 아니면 편의성과 성능 측면에서 우세한 것이 있는지 알고 싶습니다.감사합니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결김영한의 실전 자바 - 중급 2편
타입 이레이저 동작방식 질문입니다!
안녕하세요! 이번에 정처기 문제에서 타입 이레이저 관련 문제가 나왔는데, 궁금한 점이 생겨서 질문 올려봅니다.class Printer { void print(Integer a) { System.out.print("A" + a); } void print(Object a) { System.out.print("B" + a); } void print(Number a) { System.out.print("C" + a); } } public class Gisafirst { public static void main(String[] args) { new Container<>(0).print(); } public static class Container<T> { T value; public Container(T t) { value = t; } public void print() { new Printer().print(value); } } }제가 이해한 바로는, 강의에서 설명해주신대로 new Container<>(0)에서 public static class Container<Integer> { Integer value; public Container(Integer t) { value = t; } public void print() { new Printer().print(value); } }컴파일러가 컴파일 시점에 이렇게 이해하고 나서 컴파일 종료 후, 타입 소거가 일어나서, Object로 변환한다고 이해했습니다.그래서 print 메서드를 호출할 때 value는 Object 타입이므로 B0가 출력되는 것이죠.여기서 궁금한 점은 바로 print의 오버로딩 메서드 선택 시점입니다. 제가 찾아본 바로는 오버로딩 메서드 선택시점은 컴파일 단계에서 이루어진다로 알고있습니다. 그렇다면 동작방식이 컴파일 종료 후 타입 소거가 일어나는게 아니라, 정확히는"컴파일 시작 - 타입 소거 - 오버로딩 메서드 선택 - 컴파일 종료 - 런타임" 이런식으로 일어나는건가용?아니면 어디서 오해하고 있는지 궁금합니다!