묻고 답해요
150만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
순위 정보를
불러오고 있어요
-
미해결코딩테스트 합격자되기-알고리즘 개념
코딩 테스트 대비 자료의 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강을 아직 들어보지 않아서 이 부분에 대한 설명을 나중에 해주시는지 확인해 보지 않았지만 , 아무 설명도 없이 이렇게만 넘어간다면 저와 같이 헷갈리시는 분들이 많을 것 같아 질문 드립니다 🙂
-
미해결비전공자의 전공자 따라잡기 - 자료구조(with JavaScript)
LinkedList로 스택, 큐 구현하기 숙제
스택 부분class Stack { head=null; tail=null; length=0; push(value) { if (this.head) { this.tail.next = new Node(value); this.tail.next.prev = this.tail; this.tail = this.tail.next; } else { this.head = new Node(value); this.tail = this.head; } this.length++; return this.length; } pop() { let value = this.tail?.value; if (!this.tail) { // 값 존재 x return null; } if (this.tail === this.head) { // 값이 하나 this.head = null; this.tail = null; } else { // 값이 여러개 this.tail = this.tail.prev; this.tail.next = null; } this.length--; return value; } } class Node { next = null; prev = null; constructor(value) { this.value = value; } } const stack = new Stack(); stack.push(1); stack.push(3); stack.push(5); stack.push(2); console.log(stack.push(4)); // length 리턴 5 console.log(stack.pop()); // 4 console.log(stack.pop()); // 2 console.log(stack.pop()); 큐 부분class Queue { head = null; tail = null; length = 0; enqueue(value) { if (this.head) { this.tail.next = new Node(value); this.tail.next.prev = this.tail; this.tail = this.tail.next; } else { this.head = new Node(value); this.tail = this.head; } this.length++; return this.length; } dequeue() { let value; if (!this.head) { return null; } if (this.head === this.tail) { // 한 개 value = this.head.value; this.head = null; this.tail = null; } else { // 여러 개 삭제 value = this.head.value; this.head = this.head.next; this.head.next.prev = null; } this.length--; return value; } } class Node { prev = null; next = null; constructor(value) { this.value = value; } } const queue = new Queue(); queue.enqueue(1); // 1 queue.enqueue(3); // 3 queue.enqueue(5); // 5 queue.enqueue(2); // 2 queue.enqueue(4); // 4 console.log(queue.enqueue(7)); // 7 console.log(queue.dequeue()); // 1 console.log(queue.dequeue()); // 3 console.log(queue.dequeue()); // 5 console.log(queue.dequeue()); // 2 console.log(queue.dequeue()); // console.log(queue.dequeue()); // console.log(queue.dequeue()); // 큐 부분에서 콘솔 로그로 찍어 봤을 때 deque가 1,3,5,2 까지 진행 되고 그 이후에this.head.next.prev = null; ^TypeError: Cannot set properties of null (setting 'prev')이런 에러가 발생하는데 이유가 궁금합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
9375번 질문있습니다
안녕하세요, 복습하면서 1주차부터 문제를 다시 풀어보고 있습니다.9375번 문제가 아래 코드에서 왜 25%에서 틀리다고 나오는데, 왜 그러는지 잘 모르겠습니다.http://boj.kr/023aa07578bb4cd296149a9a4f7d4a16너무나 궁금합니다!!
-
미해결카카오 코테 6주 합격! 실전 파이썬 코딩테스트
식 오류 있습니다.
안녕하세요. 강의를 듣고 있는 학생입니다.현재 1분 25초에 나오는 'O(logN)알고리즘을 선택한다면?' 부분의 식에서 7/log_10(2) 이 1/log_10(2)로 수정되어야 할 것 같습니다(log의 밑을 여기엔 수식으로 표현하지 못하여 log_10(10이 밑)처럼 표현했습니다.). 즉 7이 1이 되어야 합니다.감사합니다.
-
해결됨38군데 합격 비법, 2024 코딩테스트 필수 알고리즘
섹션4. 3주차 Stack 백준 2493
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 섹션4. 3주차 Stack 3-5어떤 알고리즘을 학습하고 계신가요?여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분딩코님교재 스택부분 예제에 있는 백준 2493 , https://www.acmicpc.net/problem/2493선생님이 알려준 내용대로 이해하고 제출했으나 3개모두 시간초과가 뜹니다. pypy로 바꿔서도 해봣네용스택 학습이 우선적이기에 의도했다고 하더라도(제가 잘못 한걸 수도 있습니다!!!1)시간초과가 뜨지않길 원합니다, 어떻게 코드를 수정해야할까요 3. 시도해보신 내용 에러가 발생했다면 어떤 에러인가요? 시간초과현재 작성하신 코드를 공유해주세요 첫번째콛, -내가 작성n=int(input()) # 한 줄로 입력 받기 data = input().strip() numbers = list(map(int, data.split())) result=[] for i in range(n-1,-1,-1): cur_idx=i for j in range(i-1,-1,-1): if numbers[i]<numbers[j]: result.append(j+1) break elif j==0: result.append(0) result.append(0) while result: print(result.pop(),end=" ") 나머지코드- 딩코님의 작성n=int(input()) # 한 줄로 입력 받기 data = input().strip() top_heights= list(map(int, data.split())) def get_receiver_top_orders(heights): answer = [0] * len(heights) while heights: height = heights.pop() for idx in range(len(heights) - 1, -1, -1): if height <= heights[idx]: answer[len(heights)] = idx + 1 break return answer print(get_receiver_top_orders(top_heights)) # [0, 0, 2, 2, 4] 가 반환되어야 한다! n=int(input()) # 한 줄로 입력 받기 data = input().strip() top_heights= list(map(int, data.split())) def get_receiver_top_orders(heights): answer = [0] * len(heights) while heights: height = heights.pop() for idx in range(len(heights) - 1, -1, -1): if height <= heights[idx]: answer[len(heights)] = idx + 1 break return answer print(get_receiver_top_orders(top_heights)) # [0, 0, 2, 2, 4] 가 반환되어야 한다! 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
침투/섬개수 질문
침투/섬의개수 질문드립니다. 침투 문제에서는 연속된 숫자가 들어와서 row=input() 이렇게 표현 하셨는데 연속된 숫자가 들어올거라는 것을 어떻게 유추할수 있을까요? 섬의개수 문제에서는 침투와 달리 row=list(map(int,input().split())) 이렇게 표현하셨는데, 침투랑 동일하게 row=input()으로 표현해도 되는거 아닌가요? 연결정보 채우는거에 대한 언급을 어떻게 찾는지 궁금합니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-O 4375 질문있습니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/530b59b66e6b4c31bd01bbebc065f5e4안녕하세요 큰돌님 9901 테스트케이스를 통과하지를 못 하는데 이유를 못 찾겠어서 문의드립니다!
주간 인기글
순위 정보를
불러오고 있어요