묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
- 
      
        
    미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트Stack, deque, queue 관련 질문안녕하세요!공부중에 궁금한 점이 있어서 문의드립니다. deque 같은 경우에는 stack과 queue 모두의 장점을 가지고 있고, 따로 시간적으로 더 복잡하거나 하지도 않는 것으로 이해하고 있는데, 그럼 deque만 사용하는게 더 좋은걸까요? 아니면 stack이나 queue를 사용할 일이 있을지 궁금합니다! 
- 
      
        
    해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트오류밑이 10인 log10(2)는 약 23정도 되는데 뭔가 잘못된것같습니다. 
- 
      
        
    해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트재귀안녕하세요 수강자입니다.현재 2진수로 변환할때의 재귀함수 호출부분을 듣고있습니다. 1.종료조건, 2.재귀조건 3.데이터통합 으로 심플하게 나눠서 생각하는 방법 알려주셔서 감사합니다. 하지만 재귀함수를 할때, 스택의 개념을 설명해주지 않으셔서 뭔가 2% 개념이 부족한 느낌을 받았습니다. 완전 초보자 입장에서, 코드를 한줄한줄씩 공책에 써가며 결과값이 어떻게 나오는지 확인하는 과정중에, 설명해주신 개념과 풀이법이 직관적이며 머리에 쏙쏙박히기는하는데 왜 그렇지 하는 생각이 들어서요. 
- 
      
        
    해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트1-F 질문있습니다- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.https://inf.run/e3oLMabcdefghijklmnopqrstuvwxyz를 입력해서 해본 결과 r 까지는 잘 나오는데 s부터는 출력하였을 때 이상한 값들이 들어갑니다.(한글이 들어갑니다) 어느 부분에서 잘못된 것인지 알 수 있을까요?(대문자는 잘 나오는 것을 확인하였습니다) 혹시 아스키 코드표에 나와있는 값을 넘어가는 값이 저장되었다가 값을 빼주는 과정에서 코드표를 넘어가는 값이 저장되면서 오류가 발생한 것인가요? 
- 
      
        
    미해결김영한의 실전 자바 - 중급 2편배열의 가장 앞쪽에 요소를 추가할때 의문점배열의 가장 앞쪽에 요소를 추가할때, 기존의 요소를 전부 한 칸씩 오른쪽으로 옮기고 나서 확보된 빈 공간에 추가해야한다는건 이해했습니다! 그런데 곰곰히 생각해봤는데 그냥 배열자체의 시작 주소값을 한칸 앞으로 당기고 거기다가 새로운 요소를 추가하면 빅오 표기법상 O(1)? O(2)? 가 되는거 아닌가요? 예를들면 int[]의 기존 주소값이 x100이었다면 x96으로 옮기고 새로운 요소를 거기다 추가해주는거죠 주소값 자체를 명시적으로 할당하는 문법이 있는지 없는지는 모르겠지만 어쨋든 내부적으로는 그렇게 작동하도록 언어를 구현할수도 있는거아닌가요?? 그런데 당연히 이렇게는 안되니까 안하는것일텐데, 몇시간동안 생각해봐도 안되는 이유가 안떠올라서 질문드립니다 ㅠㅠ 
- 
      
        
    해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트vector, array 관련 질문안녕하세요 공부 중에 궁금한 점이 있어서 문의드립니다. 큰돌님께서는 보통 vector을 잘 사용하지 않으시고, 문제에서 주어진 최대 크기+여유분 만큼의 array를 선언해서 사용하시는 것으로 보이는데, array를 사용하는게 더 이점이 큰건지 아니면 그냥 취향 차이인건지 궁금합니다! 
- 
      
        
    미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비제 코드의 어떤 부분이 틀린지 모르겠습니다. (GPT도 오답인 케이스를 못찾아요..)package section_2; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class GetRank { public static ArrayList<Integer> solution(int[] scores) { ArrayList<Integer> list = new ArrayList<>(); Integer[] sortedScores = new Integer[scores.length]; Arrays.setAll(sortedScores, i -> scores[i]); Arrays.sort(sortedScores, Comparator.reverseOrder()); System.out.println(Arrays.toString(scores)); System.out.println(Arrays.toString(sortedScores)); for (int score : scores) { for (int j = 0; j < scores.length; j++) { if (score == sortedScores[j]) { list.add(j + 1); break; } } } return list; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] scores = new int[n]; for (int i = 0; i < n; i++) { scores[i] = sc.nextInt(); } for (Integer i : solution(scores)) { System.out.print(i + " "); } } } 
- 
      
        
    해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트백트래킹, 비트마스킹 질문입니다.- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 자바로 풀이하고 있는 학생입니다.비트마스킹 부분 강의를 듣던 중에 백트래킹으로 대부분 다 해결이 되는 것 같다고 느꼈습니다. 비트마스킹 암기와 이해가 조금 어려운 것 같은데 꼭 알고 가는게 좋을까요? 
- 
      
        
    해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트안녕하세요! 교안 관련은 아니고, c++ 코딩테스트 관련해서 질문 드려요삼성전자 서류 합격을 받아서, 이번주 일요일에 코딩테스트를 보게 되었는데요. 1. 교안엔 <bits/stdc++.h>를 사용할 수 있다고 나오는데, 이건 코드를 제출하는 창에서 사용 가능한거고, 실제로 문제를 푸는 visual studio 2022 환경에선 사용이 안되는 거라고 봐도 될까요? 제가 알기론 visual studio 2022 환경에선 따로 stdc++.h 파일을 받아서 특정 디렉토리에 넣어야 가능한 걸로 알고 있거든요. 제가 원래는 맥북을 사용하다가 시험장에선 윈도우를 사용해야 하는 상황인데, visual studio 에서 c++로 시험을 볼때 주의해야 할 사항이나 세팅 사항이 있는지 궁금합니다.긴글 읽어주셔서 감사합니다. 좋은 강의 잘 듣고 있습니다! 
- 
      
        
    해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트6주차 교안- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 6주차부터는 왜 교안이 없나요..?! 
- 
      
        
    해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)다익스트라 음수 간선다익스트라는 음수 간선이 존재하는 경우 사용할 수 없다 라고 하셨는데 다익스트라 개념 강의에 나온 예시 코드의 경우에는 음수 간선이 존재해도 사용할 수 있는거 아닌가요? 이미 방문한 노드(최단경로를 확정한 경우)를 다시 방문하지 않는다면 음수 간선이 존재하면 최단 경로를 구할 수 없을것 같은데 강의에 나온 예시 코드는 방문을 했더라도(최단 경로를 확정 했더라도) 다시 heap에서 꺼내어 비교하는 과정이 있으므로 음수 간선이 존재해도 가능할 것 같아 질문드립니다. 
- 
      
        
    해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트3-B번 질문 있습니다!3-B번 보물섬 문제를 풀다가. 각 육지마다 BFS를 하는 것보다, 한 컴포넌트에서 BFS_1로 임의의 한 점에서 가장 먼 점을 찾고, 찾은 가장 먼 점에서 BFS_2로 또 가장 먼 점을 찾으면, 해당 컴포넌트에서는 가장 먼 점의 길이를 구할 수 있다고 생각하고 풀이하였는데 틀린 이유를 잘 모르겠습니다...이렇게 풀면 틀린 이유가 있을까요??항상 수업 너무 잘 듣고 있습니다. 감사합니다!#include <bits/stdc++.h> using namespace std; int n, m; string a; char mapp[54][54]; bool visited[54][54]; int dis[54][54]; int dy[] = {0,-1,0,1}; int dx[] = {1,0,-1,0}; queue<pair<int,int>> q; queue<pair<int,int>> q2; int max_val = 0; pair<int,int> bfs_1(int y, int x){ visited[y][x]=1; q.push({y,x}); pair<int,int> here; while(q.size()){ here = q.front(); q.pop(); for(int i=0;i<4;i++){ int ny = here.first + dy[i]; int nx = here.second + dx[i]; if(ny<0||nx<0||ny>=n||nx>=m) continue; if(visited[ny][nx]) continue; if(mapp[ny][nx]=='W') continue; visited[ny][nx] = 1; q.push({ny,nx}); } } return here; } int bfs_2(int y, int x){ dis[y][x] = 1; q2.push({y,x}); pair<int,int> here; while(q2.size()){ here = q2.front(); q2.pop(); for(int i=0;i<4;i++){ int ny = here.first + dy[i]; int nx = here.second + dx[i]; if(ny<0||nx<0||ny>=n||nx>=m) continue; if(dis[ny][nx]>0) continue; if(mapp[ny][nx]=='W') continue; dis[ny][nx] = dis[here.first][here.second] + 1; q2.push({ny,nx}); } } return dis[here.first][here.second]; } int main(){ cin >> n >> m; for(int i=0;i<n;i++){ cin >> a; for(int j=0;j<a.length();j++){ mapp[i][j] = a[j]; } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(mapp[i][j]=='W') continue; if(visited[i][j]) continue; pair<int,int> ret_1 = bfs_1(i,j); int max_dis = bfs_2(ret_1.first, ret_1.second) -1; max_val=max(max_val,max_dis); } } cout << max_val; return 0; } 
- 
      
        
    해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트자바스크립트로 포팅하는 방법안녕하세요 강사님, 좋은 강의 제공해주셔서 감사합니다!저는 프론트엔드 개발자를 희망하여 JS 외 다른 언어 경험은 없는 상태입니다 ㅜ그래서 다름이 아니라, C++를 JS로 포팅하는 방법 관련해서 질문이 있습니다:) (0주차 + 교안)을 학습하고 주차별로 학습을 하려고 하는데 예를 들어 next_permutation()와 같이 JS에 없는 함수 및 C++에서만 제공되는 문법의 경우, 그때그때 next_permutation() 동작 원리를 찾아보면서 JS로 구현해보는 연습을 병행하는 것이 효율적일까요?아직 JS에 비해 C++ 및 알고리즘 경험이 많지 않다보니, 학습을 하면서 그 자체를 이해하려고도 하지만 자연스럽게 JS라면? 이라는 생각을 계속 하다보니 진도가 나가지 않는 것 같습니다.. 이렇게 학습하는 것이 맞는지도 조금 의구심이 들어서 혹시 이 부분에 대해서도 강사님의 명쾌한 조언을 듣고 싶습니다!중복되는 질문이지만, 정리해보면 JS로의 포팅을 중간중간 따라가는 방법과 일단은 JS는 고려하지 않고 C++ 알고리즘 자체를 구현하는 방법을 학습 후, 추후 한꺼번에 JS로 포팅하는 방법 중 권장되는 방식도 궁금합니다:)좋은 강의 제공해주셔서 감사드립니다. 
- 
      
        
    미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트8-F 유형의 문제를 풀 때 어려운 점안녕하세요 큰돌님.8-F처럼 톱니바퀴나 다이얼을 돌려서특정한 상태로 만드는 데 필요한 최소 횟수를 구하는 문제를 풀 때 어려운 점이 있습니다.이런 문제의 풀이는 주로 왼쪽 아니면 위쪽부터 탐색을 진행해 답을 찾습니다.하지만, 저는 내심 이런 불안감이 듭니다.'만일 최적의 횟수가 맨 위가 아니라, 중간이나 맨 하단에서 다이얼을 돌리는 방법에서 비롯된 거면 어떡하지'.'현재 위치 N에서 다이얼을 맞추지 않고, 그 다음의 위치에 있는 다이얼을 먼저 맞춘 후, 다시 위치 N으로 돌아와서 다이얼을 맞추는 게 최적일 수도 있지 않을까.'위와 같이 다양한 가능성을 염두하니, 풀이법을 떠올리는 데 어려움이 많습니다.제가 문제를 접근하는 방식이 어디가 잘못되었는지, 어떻게 고쳐야 하는 지 궁금합니다 
- 
      
        
    해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트백준 1911번 문제 정렬후 현재 위치를 갱신해가면서 찾을 수도 있지 않나요?저는 물웅덩이가 시작되는 위치를 기준으로 정렬을 한 뒤에 현재 위치를 0으로 잡고 만약 물웅덩이가 시작되는 위치가 현재 위치보다 크다면 현재 위치는 물웅덩이 위치로 한뒤 현재 위치 = 현재 위치 + 널빤지 위치, 만약 현재 위치가 물웅덩이가 시작되는 위치보다 크고 물웅덩이가 끝나는 위치보다 작은 경우 현재 위치 = 현재 위치 + 널빤지 위치.이런식으로 현재 위치를 갱신해가면서 답을 구했는데 이 접근법은 이 문제에서만 유효한가요?아래는 자바 코드 입니다.package _5thweek; import java.util.PriorityQueue; import java.util.Scanner; public class Baekjoon1911 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int l = sc.nextInt(); PriorityQueue<int[]> pq = new PriorityQueue<>((a, b) -> { if (a[0] > b[0]) { return 1; } else if (a[0] < b[0]) { return -1; } return 0; }); for (int i = 0; i < n; i++) { int start = sc.nextInt(); int finish = sc.nextInt(); pq.add(new int[]{start, finish}); } int ans = 0; int cur = 0; while (!pq.isEmpty()) { int[] poll = pq.poll(); int start = poll[0]; int end = poll[1]; while (cur < end) { if (cur < start) { cur = start; } ans += 1; cur += l; } } System.out.println(ans); } } 
- 
      
        
    해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트2-Q 2636 시간초과안녕하세요 2636번 치즈 문제 질문 드립니다.https://inf.run/LM71Q위와같이 행렬을 두개 만들어서 풀었는데 시간 복잡도가 10,000,000을 넘을 것 같진 않은데 자꾸 시간 초과가 뜨는 것 같습니다. 혹시 이 부분에 대해 어떻게 해야할 지 답변 주시면 감사하겠습니다. 
- 
      
        
    해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트1-H 질문있습니다안녕하세요 강사님1-H 문제에 대해서 강사님과 다른 방법으로도 풀어보았는데(https://inf.run/L1p8z) 강사님의 구간합 방법(https://inf.run/4mSTg) 보다 시간이 20ms 가량 높게 나와서 궁금증에 질문드립니다. 구간합의 반복횟수 보다 적게 반복 한 것 같은데, 내부에 분기문과 queue 사용으로 인해 시간이 더 늘어나게 된걸까요? 맞다면 queue의 처리는 O(1)으로 알고 있어서 분기문과 queue 중 처리 속도 증가의 원인을 꼽자면 분기문이 더 큰 비중을 차지하는지도 궁금합니다 퀄리티 높은 강의와 지속적인 피드백 늘 감사드립니다! 
- 
      
        
    미해결2주만에 통과하는 알고리즘 코딩테스트 (2024년)유니온파인드유니온 파인드 문제에서 최적화 후 정답이 나오지 않고 오류가 나옵니다. 유니온 함수만 최적화 했습니다. 
- 
      
        
    미해결김영한의 실전 자바 - 중급 2편강의 중 이중연결리스트학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. 이중연결리스트는 안다루나요? 
- 
      
        
    해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트3-G 질문 있습니다.http://boj.kr/2cd5a4c0ee0241ee8e0b68be6d2a9ac2 46%쯤에서 틀리는데 이전 질문 글들을 확인하니까 1 14 (정답은 5 4인데 5 1 이 출력됨)의 경우 왜 안되는 것인지 도저히 모르겠습니다... 
