묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이렇게 풀어도 되나요 ?
function solution(s){ let answer = ''; let cnt = 1; for (let i = 1; i <= s.length; i++) { if (s[i - 1] === s[i]) cnt++; else { answer += s[i - 1]; if (cnt > 1) answer += cnt; cnt = 1; } } return answer; } let str="KKHSSSSSSSE"; console.log(solution(str)); 이렇게 풀어도 되나요 ?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하십니까 선생님!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 문제 풀 때에 구조체를 사용하신 이유가 궁금합니다!!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
코드 효율성 질문드려요
http://boj.kr/2711088b44d64f2ca315c5f8d4e2f5c8 이런 코드로 작성해도 효율적인가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
문제 번호 변경
포켓몬스터 이다솜은 1165에서 1620으로 변경된 거 같아요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하십니까 큰돌선생님
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 가장 미래에 참조되는 것을 빼야한다고 하셨는데 이해가 잘 가지 않습니다 ㅠㅠ 혹시 테스트 케이스로 예시를 보여주실 수 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-K 질문 있습니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님 강의 잘 보고 있습니다!http://boj.kr/a4789567a93f4ab683d66bdbe489f9a9와 같이 DFS를 풀었고 제출을 했는데 메모리 초과가 발생했습니다! 배열의 사이즈가 컸나 그래서 선생님 해설을 보다가 그건 아닌 것 같고 해서 질문했습니다!! 항상 좋은 답변 감사드립니다!
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
90번 심바문제 질문있습니다.
69 ~70 번째 줄인 while (!Q.empty()) { Q.pop(); } res = tmp.dis; }이 부분이 이해가 안됩니다. 왜 큐를 제거를 하는지 이전에 다 없어지지 않았나요? 그리고 dis를 하는이유도 궁금합니다. z로 설정을 다하셨는데 왜 갑자기 이렇게 나오는지....
-
해결됨자바 코딩테스트 - it 대기업 유제
청소 관련 문제 질문
안녕하세요. 강의 잘 보고 있습니다.다름이 아니라 제가 코드를 작성해보다가if(nx < 0 || ny < 0 || nx >= n || ny >= n || board[nx][ny] == 1){ d=(d+1)%4; continue; }이 부분을 다르게 작성했더니 범위를 벗어났다는 오류가 떴습니다.오류가 뜬 코드는 다음(아래 코드블럭)과 같습니다.if(board[nx][ny] == 1|| nx < 0 || ny < 0 || nx >= n || ny >= n ){ d = (d + 1) % 4; continue; }오류 내용은 이렇습니다.Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5 at Solution2.solution(Solution2.java:13) at Solution2.main(Solution2.java:32) 요약하면 다른 모든 게 같아도, if문 안의 순서로 결과가 다르게 나온 것인데,여기에 질문이 있습니다.왜 board[nx][ny] == 1 부분을 맨 앞으로 보냈더니 오류가 뜨는 걸까요?or연산에서 조건1 or 조건2일 때 조건1이 참이라면 조건2는 확인하지 않는 것과 연관이 있는 걸까요? 검색이나 고민해봐도 잘 모르겠습니다. 답변부탁드립니다!
-
미해결코딩테스트 [ ALL IN ONE ]
자료구조 구현 및 해시 테이블 수강
안녕하세요, 어제부터 결제해서 잘 듣고 있는 학생입니다.저는 기계공학과를 전공하고 있고, 취업도 개발자 쪽을 하긴 하지만 IT기업이 아닌 중공업과 같이 기계공학과 관련있는 분야로 취직을 할 예정입니다.연구 분야 또한 기계 공학을 접목한 기계학습입니다.커리큘럼에 있는 연결리스트 (이건 직접 구현을 하는 것을 말합니다.)이나 해시테이블 같은 경우에는 제가 취직하려는 직종에서 잘 나오지 않는 알고리즘이라고 생각하는데 혹시 그래도 이를 꼼꼼히 공부를 해야할까요? (수강은 할 예정입니다.)
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
MAX 크기가 왜 1000000인가요?
정점의 수 N은 100,000개 까지인데이를 담는 배열의 최대 크기인 MAX가 왜1,000,000로 잡았는지 궁금합니다(+ 10은 연산 때문에 그렇다고 하셨던것같고)
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-M 및 공부 방법
문제에서 string을 그냥 sort 하는 이유는 어차피 출력할 때 "067789"이렇게 앞의 0도 포함시켜서 출력하고 비교하는 모든 사이즈가 같기 때문에 때문에 문자열들을 기본 sort를 해도 상관이 없어서인가요??저는 정말 비효율적으로 코드를 짰지만 운이 좋아 코드가 통과 됐습니다.http://boj.kr/ac9a920879094f88b09537cf47a064af큰돌님께 배운 조합을 이용하여 모든 경우의 수를 뽑아 놓고 해당 경우의 수를 전부 순열로 돌립니다. 그리고 canCmp라는 함수를 통해 부등호 비교를 해서 한번이라도 틀리면 해당 경우를 시도하지 않습니다.(1,2,3)을 뽑았으면 이것들의 부등호를 비교합니다. 틀리면 바로 다시 순서를 정해서 (1,3,2) 을 다시 위의 과정을 반복하고 통과될 경우 ret에 push를 해놓습니다.기타 등등 문제가 많았습니다. string을 굳이 int로 바꿔서 해결하려다 메모리 에러(int의 구현범위 문제인 것 같아요) 등등이 나고 그냥 sort할 생각을 못해 bigger, smaller 라는 함수도 따로따로 만들었습니다.이러다 큰돌님의 코드를 보면 정말 내가 비효율적이고 멍청하게 짰구나라는 생각 밖에 들지를 않습니다... 혹시 계속 문제를 풀다 보면 이렇게 짜는 일이 줄어들까요..?한 문제를 푸는데 30분~1시간30분 정도 걸리고 코드에 대한 힌트를 백준에서 보고 다시 구현을 해봅니다. 그래도 못 풀겠으면 큰돌님의 영상을 보고 어떻게든 다시 내 코드를 살려보려고 하고 그래도 안되면 큰돌님의 코드를 최대한 이해하고 문제를 넘어갑니다. 이렇게 9월 중반까지 하루에 4문제씩 풀어서 강의를 마무리하려는 목표를 가지고 있습니다. 이런 학습 방식이다 보니 한 문제에만 최대 3시간 정도 투자를 하는 것 같습니다. 이렇게 문제를 푸는 것이 맞을까요? 풀다가 아닌 것 같거나 특정 시간을 넘어가면 답을 보는 게 더 효율적일까요? 한 문제를 너무 깊게 잡고 있는 것은 아닌가 싶어 질문드립니다!p.s 강의 항상 잘 듣고 있습니다. bfs, dfs 구현 조차 모르던 제가 이제는 이해하면서 구현을 할 수 있습니다. 좋은 강의 해주셔서 감사드리고 많은 질문에 항상 정성스럽게 답변 주셔서 감사드립니다! :)
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
코드를 이렇게 작성하면 문제가 될까요?
public class GetMinimumDistance { public static void main(String[] args) { Scanner in = new Scanner(System.in); String str = in.next(); char ch = in.next().charAt(0); System.out.println(getMinimumDistance(str, ch)); return; } public static String getMinimumDistance(String str, char ch) { List<Integer> distanceList = new ArrayList<Integer>(); for(int i = 0; i < str.length(); i++) { String beforeStr = str.substring(0, i); StringBuilder sb = new StringBuilder(beforeStr); beforeStr = sb.reverse().toString(); String afterStr = str.substring(i); int beforeDistance = beforeStr.indexOf(ch) + 1; int afterDistance = afterStr.indexOf(ch); if(beforeStr.length() == 0 || beforeDistance == 0) beforeDistance = Integer.MAX_VALUE; if(afterStr.length() == 0 || afterDistance == -1) afterDistance = Integer.MAX_VALUE; distanceList.add(beforeDistance < afterDistance ? beforeDistance : afterDistance); } String answer = ""; for (int dis : distanceList) { answer += Integer.toString(dis) + " "; } return answer.substring(0, answer.length() - 1); } } 혹시 이렇게 작성하면 답은 맞는데 고쳐야 할 부분이라든가 있을까 고수님들 확인 부탁드립니다 ㅠㅠ너무 비효율적으로 짠거 같아서요 ㅠㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-K DFS
dfs로 풀던 와중 시간 초과가 났습니다.선생님과의 코드 로직이 비슷한데 다른 점이라면 저는 dfs를 시작하는 부분이 처음부터라는 것입니다. 선생님은 효율적으로 하기 위해 얼음을 녹인 부분부터 탐색하졌지만 저는 비효율적으로 움직인 것이지요. 그래서코드를 보시면 아시겠지만이번에 녹게 된 얼음을 water라는 벡터에 담고 그 위치를 기반으로 dfs를 했지만 시간 초과가 났습니다. 이유가 뭘까요..? 무조건 bfs로 풀어야 하는 문제인가요??!http://boj.kr/a9dad7d86c01419d8b1cf0b6a8f8683c
-
미해결자바 코딩테스트 - it 대기업 유제
BFS로 풀이
강사님, 안녕하세요. 강의 잘 듣고 있습니다.공굴리기 문제를 간선의 가중치가 모두 1이라고 간주하고,한 칸씩 이동하면서 distance[다음 정점] = distance[현재 정점] + 1 을 해주는 식으로 BFS를 활용해 풀어도 되는지 궁금합니다.다익스트라와 BFS 2 개 방식의 효율성(시간복잡도) 차이는 어떻게 되나요?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
K번째 수
안녕하세요초보여서.. 아무리 봐도 이해가 안가서 문의 드립니다. T,T기초적인 질문이라도 이해 부탁드립니다. T = int(input()) 의 값이 왜 input 파일의 첫번째 값이 나오는지 이해가 안갑니다. for 문에서 2번을 수행하는데 첫번째 수행에서 n,s,e,k 에는 INPUT 파일의 2번째 줄의 값이 들어가고, a에는 INPUT DML 3번째 줄의 값이 들어가는지 이해가 안갑니다. (마찬가지로 2번째 수행에서는 4,5번째 줄이 들어가는것도 이해가 안갑니다)바쁘시겠지만 답변 부탁드릴께용
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
8-1번 합이 같은 부분집합 질문 드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static int sum = 0; static int n; static int[] arr; static boolean flag = false; static String answer = "NO"; public static void main(String[] args) throws IOException { Scanner kb = new Scanner(System.in); n=kb.nextInt(); arr = new int[n]; for(int i=0; i<n; i++){ arr[i]=kb.nextInt(); sum+=arr[i]; } DFS(0, 0); System.out.println(answer); } static void DFS(int i, int part_sum){ if(flag == true) return; if(i == n){ if(sum == (sum-part_sum)){ flag = true; answer = "YES"; } } else{ DFS(i+1, part_sum + arr[i]); DFS(i+1, part_sum); } } }위와 같이 코드를 짰습니다.주어진 예제도 잘나오는데 채점사이트에 입력하면 계속 오답이라고 나오네요ㅠㅠ 로직도 똑같은데 뭐가 문제일까요..
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
코딩 테스트 고수가 되고 싶습니다.
안녕하세요.선생님 덕분에 점차 고수의 길로 들어서고 있습니다.강의를 듣던 중 공부 방법에 대해 고민이 생겼습니다.제 머리로 그렇겠지~ 하는 것보다는 선생님의 답변을 듣는 것이 나을 거 같아 질문 드립니다. 1) 강의 듣기 전 문제 도전2) 못풀겠으면 강의를 틀고 선생님께서 주시는 힌트를 약간 받아 다시 도전3) 그래도 안된다면 선생님 강의를 듣고 무릎을 탁 침4) 어떠한 문제로 풀지 못했는지 메모5) 바로 다시 풀어보기 현재는 이런 과정을 거치고 있는데요기존 풀어본 문제도 다시 계속 풀어봐야 하나요?오랜만에 다시 풀어보려니까 전에 풀지 못한 문제는 기억이 나지 않는 것들도 있어서요.. 코딩테스트는 무조건 많이 풀어보는게 중요하다! 는 말을 많이 들어서계속 치고 나가는게 좋을지치고 나가는 속도는 좀 더디더라도 복습을 하면서 치고 나가야할지 선생님의 조언을 기다립니다. 저는 현재 인텔리제이에서 연습하고 있는데 괜찮을까요..?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-H
TRACE하는 방식에서 헤매다가 큰돌님의 코드를 봤습니다! 그런데 만약 prev[next] = now 부분에최단거리가 아닌 경우의 값이 now에 들어가게되면 이 값들을 tracing 할 경우 최단거리가 아닌 경우의 값을 tracing 하는 것 같은데 어째서 prev[next] 쪽의 코드가 최단거리인 경우의 prev 값만 저장하는 것인지 알 수 있을까요??최단거리 값의 정답이 4인 문제라고 가정할 때제가 bfs를 돌렸을 때 최단거리 값이 6이나온 상태에서 here == k 라는 while문의 기저 사례 코드를 만나 종료가 됐다고 가정하면, prev[목적지]에 저장된 값들을 tracing 하면 4인 정답의 경로를 trace 하는 게 아니라 6인 정답의 경로를 trace하는 것 같아서 질문 드립니다!
-
미해결Do it! 알고리즘 코딩테스트 with JAVA
안녕하세요 질문있습니다.
방향 그래프 무방향 그래프에 따라서 자료구조에 자료를 저장하는 방법이 다르다고 하셨습니다. 그런데 지금 이 문제에서는 방향그래프 아닌가요??간선,엣지들을 보면 모두 방향이 있는 거 같은데, 왜 무방향그래프를 저장할 때처럼 arraylist에 값을 저장하는지 모르겠습니다.
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
코드 확인 부탁드립니다.
package inflearn.ch03; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /* 5. 연속된 자연수의 합(투 포인터) */ public class Problem_5 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); int[] array = new int[N]; for(int i = 0; i < N; i++){ array[i] = i+1; } solution(N,array); } public static void solution(int N, int[] array){ int start = 0; int end = 0; int sum = 0; int count = 0; while (end < N-1){ sum += array[end++]; if(sum == N){ count++; } while (sum >= N){ sum -= array[start++]; if(sum == N){ count++; } } } System.out.println(count); } }강의와 다르게 범위를 줄이지 않고 while 문으로 사용해서 정답 통과를 했는데 나중에 범위가 커지면 문제가 발생할 수 있을까요?