묻고 답해요
148만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결비전공자의 전공자 따라잡기 - 자료구조(with JavaScript)
heapify 안의 bigger 삼항연산자 질문
#heapify(index) { // 특정 값 수정, 삭제 const leftIndex = index * 2 + 1; const rightIndex = index * 2 + 2; const bigger = (this.arr[leftIndex] || 0 )> (this.arr[rightIndex] || 0) ? leftIndex : rightIndex; if (this.arr[index] < this.arr[bigger]) { const temp = this.arr[bigger]; this.arr[index] = this.arr[bigger]; this.arr[bigger] = temp; this.#heapify(bigger); } } bigger 삼항연산자에서 this.arr[leftIndex]의 값이 0 이고 this.arr[rightIndex]의 값이 undefined이면 조건이 false가 되면서 bigger에 rightIndex값이 들어가면서 오류가 생기는거 같습니다!
-
미해결자바 코딩테스트 - it 대기업 유제
집으로 이동 문제 코드
안녕하세요 강사님강사님께서 제시해준 답변 코드에서 의문이 있어서 질문드립니다.여기서조건절 if(nx <= 10001 && ch[0][nx] == 0){~를 보면 nx<=10001이 nx<10001이 되어야 되지 않나요?ch가 int[][] ch = new int[2][10001]; 이건데index out of bound 에러 날 것 같습니다. import java.util.*; class Solution { public int solution(int[] pool, int a, int b, int home){ int[][] ch = new int[2][10001]; for(int x : pool){ ch[0][x] = 1; ch[1][x] = 1; } Queue<int[]> Q = new LinkedList<>(); ch[0][0] = 1; ch[1][0] = 1; Q.offer(new int[]{0, 0}); int L = 0; while(!Q.isEmpty()){ int len = Q.size(); for(int i = 0; i < len; i++){ int[] cur = Q.poll(); if(cur[0] == home) return L; int nx = cur[0] + a; if(nx <= 10001 && ch[0][nx] == 0){ ch[0][nx] = 1; Q.offer(new int[]{nx, 0}); } nx = cur[0] - b; if(nx >= 0 && ch[1][nx] == 0 && cur[1] == 0){ ch[1][nx] = 1; Q.offer(new int[]{nx, 1}); } } L++; } return -1; } public static void main(String[] args){ Solution T = new Solution(); System.out.println(T.solution(new int[]{11, 7, 20}, 3, 2, 10)); System.out.println(T.solution(new int[]{1, 15, 11}, 3, 2, 5)); System.out.println(T.solution(new int[]{9, 15, 35, 30, 20}, 2, 1, 25)); System.out.println(T.solution(new int[]{5, 12, 7, 19, 23}, 3, 5, 18)); System.out.println(T.solution(new int[]{10, 15, 20}, 3, 2, 2)); } }
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
windows c++ 환경 셋팅
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 윈도우에서 visual studio code로 c++ 환경을 셋팅하려고 하는데, 계속 똑같은 오류가 발생합니다.MSYS2 통해서 MinGW-w64 toolchain 다운로드 받고 환경변수까지 다 설정했습니다.https://code.visualstudio.com/docs/cpp/config-mingw#_prerequisites .cpp 파일 만들어서 g++ -std=c++14 -Wall a.cpp -o a.out 명령어를 치면C:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../lib/libmingw32.a(lib64_libmingw32_a-crtexewin.o): in function `main':C:/M/B/src/mingw-w64/mingw-w64-crt/crt/crtexewin.c:67:(.text.startup+0xc5): undefined reference to `WinMain'collect2.exe: error: ld returned 1 exit status해당 에러가 발생합니다. 이걸 어떻게 해결해야 할지 모르겠습니다. (c/c++ configuration ui 설정까지 다 했습니다.)이를 해결할 방법이나 윈도우에서 visual studio code에서 c++ 환경을 셋팅하는 방법을 알려주시면 감사하겠습니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
선생님 중복 단어나 중복관련 문제들은 set을 이용하면 좋을것 같습니다.
// 중복 문자제거 function solution(my_string) { return [... new Set(my_string)].join("") } // 중복단어 제거 function solution(str) { return [...new Set(str)] } let str = ['good', 'time', 'good', 'time', 'student'] console.log(solution(str))
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-A(19942) 질문 있습니다.
http://boj.kr/d23d4530da1942ca8560de75051ec4a0안녕하십니까 선생님, 항상 강의 잘 듣고 있습니다. 매번 상세한 답변 감사합니다.4 - A 문제에서 어느 부분에서 틀렸는지 잘 모르겠습니다. 그리고 문제의 출력 조건에서 재료의 번호를 "사전 순으로 가장 빠른 것을 출력한다." 이 부분이 제 풀이에서는 어차피 1번 재료부터 쌓아 갔으니 고려하지 않아도 되는 부분인가요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
왜 경계값이 정해인지 궁금합니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. F번 질문드립니다!사과위치가 바구니 사이에 있지 않는 경우, 바구니 길이만큼 모두 탐색해서 최솟값을 찾아야 한다고 생각했습니다. 현재 바구니 위치가 다음번,다다음번 사과 거리에 영향을 미치기 때문에 단순히 왼쪽,오른쪽 경계값으로 단정지으면 안된다고 생각했는데, 제 생각이 왜 틀린건가요?
-
미해결코딩테스트 합격자되기-알고리즘 개념
코딩 테스트 대비 자료의 49페이지 Tip에 대한 질문입니다.
데이터 양이 많지 않으나 데이터 간의 간격이 큰 경우에 데이터 값을 인덱스로 사용하면 Memory Exception이 발생한다고 했는데, 이 말은 인덱스로 사용된 값들이 차이가 커서 결국 배열이 쓸데없이 커지므로 제한된 메모리를 초과할 가능성이 많다는 의미인가요??즉, 1, 10000 이란 값이 있을때에 이 값들을 인덱스로 쓰면 10000 요소를 가진 배열로 만들어 지지만, 유효한 값은 단 2개( 1과 10000의 인덱스가 가리키는 요소 )만이 들어있게 되고, 이 값의 차이가 크면 메모리에 담을 수 없을 만큼의 크기로 커진다는 의미이므로 피해야 한다는 말로 이해가 됩니다만..그리고, 구조체를 사용하라는 말의 의미가 값을 하나의 구조체로 해서 연결 리스트로 연관 지으라는 의미로 받아들여도 되나요? 혹시 잘 못 알았다면 어떤 의미인지 설명해 주시면 감사하겠습니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
검은 화면
몇몇 강의가 검은 화면에서 목소리만 나오는데 왜이런건가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 불! 질문있습니다.
코드를 제출했을 때 메모리초과가 나는데 왜 나는지 잘 모르겠습니다.ㅠ http://boj.kr/e7fb9c5af2684a52bbf37a5fd78c4875
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
사전문제 관련 질문
안녕하세요 이제 막 강의 듣기 시작한 취준생 입니다. 사전 문제 관련 수업 진행 방식에 대해서 질문이 있어서 글 남겼어요.섹션1 '이 강의를 극대화 하는법' 에서 사전 문제 먼저 풀고 -> 강의를 들으라고 하셨는데, 섹션2 시작할 때 사전문제 링크에 들어가보니까 1강부터 8강까지 총 8개의 파일이 있더라구요.그래서 궁금한 것이 생겼습니다.'1강_0.배경지식 퀴즈_촬영용' 이거를 혼자 풀어보고 -> 배열 만들기를 들어야 되는 건가요? 아니면 사전 문제에 있는 모든 파일을 풀어보고 강의를 듣는 건가요?? 파일명에 1강, 2강, 3강의 의미는 뭔가요?파일중에 '1강0.배경지식 퀴즈_촬영용' << 이건 뭐죠..? 2강_0.은 문제 -> 답이 구분되어 있어 퀴즈 형식이구나 싶은데 1강.0에 있는건 바로 답이 있어서 무슨 용도인지 모르겠어서요.. 촬영용이라고 적혀있는 것도 그렇고...질문 읽어주셔서 감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
펜윅트리 개념강의 6분 37초 부근 설명 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 펜윅트리 개념강의 6분 37초 부근 설명 질문입니다.{3,4,10,11}에서 3,4,10은 다 인덱스+1을 해서 해당 번호의 노드의 값을 구할떄 더했는데, 갑자기 마지막 11은 이진수로 변환하면 100(4)인데, +1을 하지않고 4번쨰 요소에다 그냥 더하라고 설명하셨는데, 노드 번호가 (idx를 이진수로 변환한 값)+1인 노드에 더하는게 알맞은 규칙 아닌가요? 갑자기 , +1을 하지않고 4번쨰 요소에다 그냥 더하라고 설명하신 부분이 이해가 되지 않습니다.
-
미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
바둑돌에 조합을 구하는 dfs는 설명이 어딨나요
관련 강의는 없는데..
-
미해결더 개발자, 인터뷰 가이드
배열 문제 3 - solution2
기선님 안녕하세요.문제를 풀다가 궁금한 점이 생겨서 질문드립니다. 배열 문제 3의 solution2와 관련된 질문입니다.private int[] solution2(int[] nums, int target) { HashMap<Integer, Integer> numberMap = new HashMap<>(); for (int i = 0; i < nums.length; i++) { if (numberMap.containsKey(target - nums[i]) && numberMap.get(target - nums[i]) != i) { return new int[]{numberMap.get(target - nums[i]), i}; } else { numberMap.put(nums[i], i); } } return null; } 상단 코드의 if 조건문에서 "numberMap.get(target - nums[i]) != i" 이부분이 반드시 필요한지, 아니면 없어도 똑같은 결과를 도출할 수 있는 지가 궁금합니다.제가 생각하기에는 배열을 1회만 순회하기 때문에 상기한 조건이 없어도 똑같은 결과가 나올 것 같은데 기선님의 생각이 궁금합니다. 답변 부탁드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
99%에서 틀렸습니다 질문
안녕하세요!저는 강사님과 전체적으로 유사하지만, 오름차순 정렬하는 부분을 다른 로직으로 작성했습니다.그러나 해당 로직으로는 백준 채점에서 자꾸 99%에서 틀렸습니다가 나오는데 이유를 도저히 모르겠어서 질문 드립니다.(참고로 강사님이 하신 방식과 비슷하게 문자열을 배열에 보관하고 한번에 정렬하여 인덱스 0번의 문자열을 출력하는 방식으로 수정했더니 통과했습니다.) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int n, mp, mf, ms, mv, cost, result; static int[] pArr; static int[] fArr; static int[] sArr; static int[] vArr; static int[] cArr; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); n = Integer.parseInt(br.readLine()); pArr = new int[n + 4]; fArr = new int[n + 4]; sArr = new int[n + 4]; vArr = new int[n + 4]; cArr = new int[n + 4]; StringTokenizer st = new StringTokenizer(br.readLine()); mp = Integer.parseInt(st.nextToken()); mf = Integer.parseInt(st.nextToken()); ms = Integer.parseInt(st.nextToken()); mv = Integer.parseInt(st.nextToken()); for (int i = 0; i < n; i++) { st = new StringTokenizer(br.readLine()); pArr[i] = Integer.parseInt(st.nextToken()); fArr[i] = Integer.parseInt(st.nextToken()); sArr[i] = Integer.parseInt(st.nextToken()); vArr[i] = Integer.parseInt(st.nextToken()); cArr[i] = Integer.parseInt(st.nextToken()); } cost = 15000; result = -1; for (int i = 1; i < (1 << n); i++) { solve(i); } StringBuilder sb = new StringBuilder(); if (result == -1) { sb.append(result).append('\n'); } else { sb.append(cost).append('\n'); for (int i = 0; i < n; i++) { if ((result & (1 << i)) != 0) { sb.append(i + 1).append(' '); } } } System.out.println(sb); } static void solve(int num) { int p = 0; int f = 0; int s = 0; int v = 0; int c = 0; for (int i = 0; i < n; i++) { if ((num & (1 << i)) != 0) { p += pArr[i]; f += fArr[i]; s += sArr[i]; v += vArr[i]; c += cArr[i]; } } if (p < mp || f < mf || s < ms || v < mv) return; if (cost > c) { // 더 적은 비용이면 비용과 result 갱신하기 cost = c; result = num; } else if (cost == c) { // 비용이 같으면 더 빠른 result로 갱신하기 for (int i = 0; i < n; i++) { if ((result & (1 << i)) != (num & (1 << i))) { // i번째 인덱스에 비트가 다르면 if ((num & (1 << i)) != 0) { // num이 켜져있으면 사전 순으로 더 빠름 result = num; } break; } } } } }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S 질문있습니다.
안녕하세요 큰돌님 강의 잘 보고 있습니다. 혼자 문제를 풀때 dfs와 dp를 섞어서 다음과 같이 풀었습니다. http://boj.kr/1502bc54c9eb4d5ea406fd47713ab8e5dp를 섞어 각 노드당 한번씩만 방문하게 하여 입력, 로직 수행, 출력 모두 합쳐도 최대 O(2n+m)이라는 생각이 드는데 시간 초과가 나옵니다. 혹시 제가 놓치고 있는 부분이 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-C 코드리뷰 부탁드립니다!
http://boj.kr/3107201c09a343818b48c68a1b0c422c 코드리뷰 부탁드립니다!
-
미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
알고리즘이라.. 강의 설명때 모식도가 있으면 더좋겠어요
있으면, 없으면일때, 아닐때이런 로직상으로 이해가 쉽게 되면 좋은데 순서가 없이 설명해서 순서대로코드를 짤때도 한번에 이해하는데 어려웠습니다...
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-H 13913번 메모리초과 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 선생님저는 이중백터를 사용해서 풀었습니다. 답은 나오는데 막상 메모리 초과로 틀렸습니다.. http://boj.kr/0453666f021a433eb15ce10222c70c48 제가 백준 문제를 풀면서 처음으로 메모리 초과라는 오류가 떴습니다.. 그 동안 시간복잡도만 생각했지만, 메모리도 오류가 안 나게 다루는 방법이 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-c 시간 초과 질문있습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.어느 부분 때문에 시간초과가 발생했는지 알고싶습니다ㅜㅜhttp://boj.kr/afdd467b2dc94cac8e5358b73e88798a
-
해결됨38군데 합격 비법, 2024 코딩테스트 필수 알고리즘
1-5 알고리즘과 친해지기 (2)
1. 현재 학습 진도현재 1-5 알고리즘과 친해지기 강의 중 가장 많은 알파벳 출력하는 문제를 풀고 있습니다. 2. 어려움을 겪는 부분강사님께서 말씀해주신 부분은 가장 많이 사용된 알파벳을 찾는 함수를 구현하는 것인데 강사님께서 예제로 주신 string 값들이 모두 하나 이상의 최댓값을 가지고 있습니다. print("정답 = i 현재 풀이 값 =", result("hello my name is dingcodingco")) print("정답 = e 현재 풀이 값 =", result("we love algorithm")) print("정답 = b 현재 풀이 값 =", result("best of best youtube"))현재 풀이 값 = o,n,i 현재 풀이 값 = e,l,o현재 풀이 값 = b,e,t 강사님께서는 가장 많이 사용된 알파벳 중 제일 앞에 있는 알파벳을 출력하신 것 같습니다. 제가 1-6강을 아직 들어보지 않아서 이 부분에 대한 설명을 나중에 해주시는지 확인해 보지 않았지만 , 아무 설명도 없이 이렇게만 넘어간다면 저와 같이 헷갈리시는 분들이 많을 것 같아 질문 드립니다 🙂