묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 테스트케이스 통과, ab*ab / ab 도 통과했는데 틀립니다
http://boj.kr/30c2e28d9865496a961a8b76b7e7fca9안녕하세요 선생님다름이 아니라 테스트케이스를 통과하고코드를 더 수정해서 ab*ab / ab인 경우도 통과했는데틀렸다고 합니다.어떤 점이 문제인지 알고 싶습니다.감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-T 오큰수 질문
평소에는 이 문제의 a[1000004] 배열 처럼 범위에 맞게 배열을 생성하여 문제를 푸는데, 그렇게 하지 않고 입력되는 n의 값을 사용해서 딱 n만큼의 벡터를 생성해서 푸는 방법도 괜찮을까요?http://boj.kr/865bb71ffa6e4b41b151529ec145d42f
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이 풀이는 왜 안되는지 질문 드리고 싶습니다.
def dfs(level, p): if level >= n: for x in res: if x != 0: print(chr(x + 64), end="") global cnt cnt += 1 print() else: for i in range(1, 27): if a[level] == i: res[p] = i dfs(level + 1, p + 1) res[p] = 0 elif i >= 10 and i // 10 == a[level] and i % 10 == a[level + 1]: # elif i >= 10 and a[level] * 10 + a[level + 1] == i: res[p] = a[level] * 10 + a[level + 1] dfs(level + 2, p + 1) res[p] = 0안녕하세요 선생님.다름이 아니고 제가 주석처리한 부분이 처음에 시도했던 방법인데 왜 이 방법에서는 정답이 출력이 안되는지 궁금해서 질문 남깁니다. 상태트리를 그리면서 추적을 해봐도 이부분 이해가 어렵네요.in2 파일을 출력했을 때 9개가 아닌 18개로 출력이 되고 중복 출력이 되고 있는 상황입니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 리뷰 부탁드리겠습니다!!
(사진)
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
변수선언시 var로 하면 안되나요?
변수 선언시 let으로 하시는데 var로 하면 안되는건가요 ?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질문있습니다!! 4-L
http://boj.kr/09c175c5a67e40e98e08ff7a54836d28선생님 코드와 비교해 봐도 같은 로직을 사용한 것 같고 질문게시판에 있는 반례들도 넣어봤는데 잘 돌아갑니다. 어떤 부분에서 잘못된 것인지 모르겠습니다.
-
미해결코딩테스트 [ ALL IN ONE ]
심화 강의 다 올라오는 일정이 궁금합니다. ㅎㅎ
강사님, 강의 잘 보고 있습니다!빠른 시일 내에 완강 목적이라, 남은 심화 강의까지 다 올라오는 날이 언제인지 궁금합니다.감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
배열 참조가 재귀함수보다 속도가 빠른 것이 아닌가요?
1번은 제가 혼자 구현한 코드, 2번은 강의를 참고해서 로직을 살짝 바꾼 코드입니다.http://boj.kr/93dd64e4fe984863b6e61f8a7916e40chttp://boj.kr/5a252acbbd6a450d92e338eeacc9a8ab 강의에서는 visited를 매번 초기화하여 사용하였는데, 제 1번 코드에서는 visited를 초기화하지 않고 dp처럼 방문 가능 노드 갯수 값을 저장한 뒤 해당 값이 있으면 재귀함수를 수행하지 않고 바로 값을 가져오도록 하였습니다. 이렇게 하면 2번보다 당연히 시간이 빠를 것이라 생각했는데 오히려 1번이 시간초과가 발생하고 2번이 정답 처리되었습니다. 2번 방식은 visited가 매번 초기화되기 때문에 같은 값을 여러 번 계산하게 되고 1번은 childCount하나당 단 한 번만 계산하는데 속도가 더 느린 이유가 무엇인가요? 지금까지는 별 질문 없이 잘 풀다가 원래도 어려워했던 그래프에 도착하니 막히는 부분이 많아져서 질문을 부득이하게 여러 개 올리게 되었네요...도움 부탁드립니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
해당 문제에서 트리가 무조건 한개만 존재한다는 보장이 있나요?
강의에서 설명하신 코드대로라면 트리가(루트노드가) 단 하나만 존재해야 하는데 문제에서는 트리가 반드시 하나만 존재한다는 설명이 안보여서요3-1 -1 -11답 : 2이런 입력이 들어오면 강의에서 주어진 코드로는 25~27줄로 인해 0이 출력될 것 같습니다.
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
뒤집은 소수문제
제가 혼자 숫자 뒤집는 코드를 짜봤는데 혹시 여기서 무엇이 잘못되었는지 알려주실 수 있나요...? 콘솔창엔 아무것도 뜨지않았습니다.
-
미해결자바 코딩테스트 - it 대기업 유제
회의실 만남(구현부분)과 현관문 출입순서(자료구조) 질문드립니다.
회의실 만남은 구현으로 풀고 현관문 출입순서는 큐로 풀었는데, 회의실 만남은 큐로 못 푸나요??다른 차이가 있을까요???
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
치즈 녹이는 로직을 벡터 없이 구현했는데 시간 초과가 발생합니다
평소에 문제 번호만 읽은 뒤 혼자 풀어보고 안풀리면 강의를 참고하면서 공부 중인데요,http://boj.kr/643383b66dea47fdac83a802a5ed1c3f해당 코드에서 치즈 녹이는 로직을0인 칸을 dfs로 돌면서 상하좌우에 1인 칸이 있으면 해당 칸을 2로 변경(0으로 바로 변경하면 다른 칸에서 마주칠때 문제가 생길 수 있으므로)dfs를 마친 뒤 recover함수에서 arr을 돌면서 2인 부분을 0으로 변경이런 방식으로 구현을 했는데 아무리 코드를 최적화 해봐도 계속 시간초과가 발생했습니다. 도저히 안돼서 큰돌님 강의를 보고 벡터에 좌표를 저장해 해결한 코드가 아래 링크입니다.http://boj.kr/f4f738238bdb453bbf9a967627ddb912강의를 참고해 문제를 해결하긴 했는데, 왜 첫 번째 방법이 더 느린지, 혹시 첫 번째 방법으로도 시간초과에 걸리지 않게 짤 수가 있을지 궁금해서 질문합니다!
-
미해결자바 코딩테스트 - it 대기업 유제
피부과 문제 질문입니다.
강의 해설 잘 보았습니다!저는 강사님 코드랑 다르게 풀어보았는데 이렇게 풀면 시간초과 문제가 있을까요??public class 피부과 { static int getTime(String time){ int H = Integer.parseInt(time.split(":")[0]) * 60; int M = Integer.parseInt(time.split(":")[1]); return H+M; } public static int solution(int[] laser, String[] enter){ int answer = 0; Queue<Integer> queue = new LinkedList<>(); ArrayList<Integer> info = new ArrayList<>(); for(String x : enter){ int t = getTime(x.split(" ")[0]); int n = Integer.parseInt(x.split(" ")[1]); info.add(laser[n]); queue.add(t); } int idx = 0; while(!queue.isEmpty()){ int temp = queue.poll() + info.get(idx); int res = 0; for(int x : queue){ if(temp > x){ res++; } else break; } answer = Math.max(answer,res); idx++; } return answer; } public static void main(String[] args){ System.out.println(solution(new int[]{30, 20, 25, 15}, new String[]{"10:23 0", "10:40 3", "10:42 2", "10:52 3", "11:10 2"})); System.out.println(solution(new int[]{30, 20, 25, 15}, new String[]{"10:23 0", "10:40 3", "10:42 2", "10:52 3", "15:10 0", "15:20 3", "15:22 1", "15:23 0", "15:25 0"})); System.out.println(solution(new int[]{30, 20, 25, 15}, new String[]{"10:20 1", "10:40 1", "11:00 1", "11:20 1", "11:40 1"})); } }
-
미해결코딩테스트 [ ALL IN ONE ]
시간복잡도 질문
안녕하세요. 좋은 강의 감사합니다.island 카운트 세는 문제에서 시간복잡도를 n^2으로 풀면 안된다고 하셨는데 풀이법에서는 이중포문으로 푸셨더라구요.이중포문은 시간복잡도를 n^2으로 알고 있는데 이렇게 푸신 이유가 있으신가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
BFS 당근마킷 엔지니어 승원이 코드 질문있습니다
안녕하십니까 큰돌님강의 보기 전에 제가 먼저 코드 작성했었는데 디버깅으로 결과도 확인했을 때 잘 나오고 강사님 코드랑 유사한데 맞을까요 ??http://boj.kr/bb58425d5106413eae8e4b959504dbb6근데 백준 아무 문제에 제출했을 때 결과가 틀렸습니다 가 아닌 컴파일 에러 라고 뜨는데 로직이 잘못된 걸까요 ??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
교안 p.78 질문입니다.
자 그렇다면 first는 내림차순, second는 오름차순 정렬하고 싶다면 어떻게 해야할까요?바로 커스텀 비교함수 cmp를 만들어 매개변수로 넣으면 됩니다. (보통 cmp라는 함수명을 많이 씁니다.)pair의 first를 내림차순 하고 싶으면sort(v.begin(),v.end(),greater<pair<int,int>>());이렇게 해도 되지 않을까여?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8-Z 질문입니다.
안녕하세요 큰돌님,for(int j = x1 + 1; j <= x2; j++){ cout << "j:" << j << " x2:" << x2 <<'\n'; _x[j]++; } 해당 코드에서 범위가 j <= x2 마지막 꼭지점이 포함되는 이유를 모르겠습니다. 아래 조건을 준수하려면 마지막 꼭지점은 제외해야 할 것 같은 생각이 들어서요. 단, 수평선 H는 다각형의 어떤 수평선분과도 겹처 놓여서는 안 되고, 유사하게 수직선 V는 다각형의 어떤 수직선분과도 겹쳐 놓여서는 안 된다.감사합니다! - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
교안 p.75 sort() 에 관한 질문입니다.
first는 정렬하고 싶은 배열의 첫번째 이터레이터, last는 정렬하고 싶은 배열의 마지막 이터레이터를 넣으면 됩니다. 또한 [first,last) 라는 범위를 갖습니다. 즉, first는 포함하고 last는 포함하지 않는다는 의미입니다. 그렇기 때문에 예를 들어 크기가 5인 a라는 배열 전체를 sort한다고 하면 sort(a[0],a[0] + 5)라고 해야 합니다. 즉, last에 배열의 마지막요소가 아닌 그 “다음”의 위치를 넣어주어야 합니다.굵게 표시친 부분에서 sort(a,a+5)가 아닐까요??
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
11. 문자열 압축 알고리즘 질문 있습니다.
인강에서 4분 20초 경에 IndexOutOfBoundsException이 발생하기 때문에 다음 코드의 solution 메소드에서 인자로 받는 s 뒤에 " "(공백문자)를 추가해주어야 한다고 말씀하셨는데,s = s + " ";" "(공백문자)를 추가하는 이유가 IndexOutOfBoundsException 발생이 아니라 마지막 문자 개수를 제대로 카운트하기 위함이 아닌지 질문드립니다. 아니면 IndexOutOfBoundsException가 발생할 수도 있나요? 그 이유는 무엇이고, 해당 테스트케이스는 어떤 것인가요? import java.io.*; import java.util.*; public class Main { public String solution(String s) { String answer = ""; s = s + " "; int count = 1; for (int i = 0; i < s.length() - 1; i++) { if (s.charAt(i) == s.charAt(i + 1)) { count++; } else { answer += s.charAt(i); if (count > 1) { answer += String.valueOf(count); } count = 1; } } return answer; } public static void main(String[] args) throws IOException { Main main = new Main(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); System.out.println(main.solution(str)); } }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[ 6 - J ] 질문입니다
안녕하세요 선생님, 답지에서 이해가지 않는 부분이 있어 질문을 드립니다.https://www.acmicpc.net/source/share/c2fb354cd24049edb34fbd09a91a38d3check 함수 및 마지막에 직접 태우는 부분에서temp = 0으로 초기화해야 올바른 답이 나온다고 생각했는데 temp = m으로 초기화 해야 하는 이유를 확실히 모르겠습니다. 예제 2를 예시로 들어봤을 때 (학생 수 : 7, 놀이기구 수 : 2, 각각 운행시간 : 3 2)temp = 0으로 초기화하고 시작하면 6분이 되었을 때 놀이기구 1은 2명, 놀이기구 2는 3명을 막 완료한 상태이므로 남은 아이들은 2명, 2명을 각각 놀이기구 1, 2에 태워 운행이 끝날 때 까지 기다리면 + 3분으로 9분이 올바른 종료 시간 같은데 아닌 이유가 무엇인가요?