묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-E 재귀함수 범위관련 질문 있습니다
안녕허세요 강사님강사님 풀이 과정을 3번 이상 듣고 코드를 여러번 봤는데도 잘 이해가 안가는 부분이 있어서 질문드립니다! 강사님 코드기준(해설집) 11번째줄과 12번째줄에for(int i = y; i < y + size; i++){ for(int j = x; j < x + size; j++){이렇게 i 와 j 의 범위를 나누셨는데왜 y가 0 일때 모든 x 값 비교하고 재귀하고이런식으로 만든 이유가 궁금해서 질문합니다. 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래 이렇게 한 묶음으로 검사를 하고 그 값을 return 하고 해야 맞지 않나요 ?제가 풀었던 범위 나누기와 달라서 너무 헷갈려서 질문합니다. #include <iostream> using namespace std; // 좌상 우상 좌하 우하 const int dy[4] = { -1, -1, 0, 0 }; const int dx[4] = { -1, 0, -1, 0 }; int N; char adj[65][65]; string ret; string QuardTree(int y, int x, int n) { string str; if (n == 1) return str += adj[y][x]; n = n >> 1; // n -> 2 for (int i = 0; i < 4; i++) { int ny = y + dy[i] * n; // 2 --> 1 int nx = x + dx[i] * n; str += QuardTree(ny, nx, n); } if (str == "0000") str = "0"; else if (str == "1111") str = "1"; else str = "(" + str + ")"; return str; } int main() { cin >> N; for (int y = 1; y <= N; y++) { string temp; cin >> temp; for (int x = 1; x <= temp.size(); x++) adj[y][x] = temp[x - 1]; } ret += QuardTree(N, N, N); cout << ret; return 0; } 혹시 질문이 이해가 안가실까봐 제 코드 풀이도 올려요
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-D 영역 범위 관련 질문드립니다.
선생님께서는 입력 받은 값x1,x2y1,y2로 범위를 정하고 그에 해당하는곳에 1의 값을 넣어 주었는데그 값이 배열에서의 값과는 다른데--> 입력이 5 7 3 0 2 4 4 1 1 2 5 4 0 6 2다음과 같이 주어 졌을때(0,2) ~ (4,4) 부분에 해당하는 배열의 값들을 보면a[1][0] a[1][1] a[1][2] a[1][3]a[2][0] a[2][1] a[2][2] a[2][3]인데 왜 범위를 for(int x = x1; x < x2; x++){ for(int y = y1; y < y2; y++){ a[y][x] = 1; 다음과 같이 나누어 그 값을 바로 넣었는지 궁금합니다. 제 생각은 y좌표의 위치를 뒤집어서 생각하는 것이기에 모든 값들도 똑같이 뒤집어서 넣는거는 상관없어서 넣은것 같은데 맞을까요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-Q 모범답안 코드리뷰 부탁드립니다.
안녕하세요 큰돌님2-Q 2636문제 모범답안 코드 질문있습니다.void dfs함수에서 return이 두개가 있는데 각각 return을 하면 다시 main함수의 dfs(0,0)직후로 넘어가지는건가요 아니면 void dfs함수 내에 있는 if문의 return과 for문 바깥에 있는 return이 다른의미를 갖는건가요? void dfs함수 내의 return부분이 어디로 가는지 헷갈립니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
DFS로 말단노드의 레벨값 구할때
이진트리 노드의 하위노드가 한개만 한개는 없을 경우 안된다고 말씀하셨는데 실제로 실습을 해보았을때도 안되더라구여 왜 안되는지 이유를 알고 싶습니다예를 들어If(root.lt==null && root.rt ==null) return L;else if(root.lt==null && root.rt != null) return DFS(L+1, root.lt);else if(root.lt !=null && root.rt == null) return DFS(L+1, root.rt);else return Math.min(DFS(L+1, root.lt), DFS(L+1, root.rt);이렇게 했을 경우 하위노드에 있는 하위노드 두개가 있는건 하위노드로 접근했을 때 값이 존재 했는데 하위노드가 한개 있을 경우 하위노드가 존재하는 노드를 dfs로 재귀했을경우 null값으로 되어서 이게 왜 이렇게 되는건지 알고 싶습니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
코드 정리한 것들 깃허브에 올려도 되나요?
강사님 안녕하세요. 강의 정말 잘 듣고 있습니다!매일 5문제씩 꾸준히 풀고 있는데,, 깃허브에 올려도 될까요?
-
해결됨코딩테스트 [ ALL IN ONE ]
강의 자료 요청 드려요.
노션 이메일 : realbig4199@gmail.com구글 폼도 작성했는데 조금이라도 빨리 받고 싶어서 글 남깁니다.좋은 강의 감사드려요!
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
해시테이블 개방번지화
해시테이블 개방번지화 방법에서 빈 공간을 찾는 방식을 알았는데, key를 넣었을 때 해시값을 찾을 때가 궁금합니다. 예를 들어 key로 daniel이 들어왔다면 체인법에서는 해당 해시값에서 모든 노드를 검사에 있는지 확인할 수 있었잖아요.개방 번지화 방법에서는 다른 주소로 저장할 수가 있는데, 그러면 계속 뒷 메모리를 끝까지 검사하면서 찾아보아야 하나요?아니면 마지노선이 있어서 daniel이 없다는 걸 화정하고 넘어갈 수 있는 기준이 있는건가요? 너무 깊숙히 생각하는 것 같지만, 시간복잡도가 끝없이 늘어나는 건지 걱정이 되서 질문드렸습니다. 감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
시간초과
아무리 해도 시간 초과 나고 심지어 강의 코드 그냥 똑같이 써도 시간초과가 나네요. 심지어 ret2 안구하고 그냥 ret5만 구해서 계산해도 시간초과입니다.ios_base::sync_with_stdio(false);cin.tie(NULL); cout.tie(NULL); 이거 안썼다고 시간초과 난다고 틀렸다고 하는건 비정상이라고 생각합니다. 실제 프로그래밍할 때 써야하는 것도 아니고 무슨 저거 썼는지 안썼는지 확인을 하는지 어이가 없네요. ㅋㅋ 이게 무슨 알고리즘 테스트인지.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
모법단안에서 질문이있습니다.
언제나 좋은 최상의퀄리티 수업을 듣고있음에 감사합니다.모법답안에서 질문이있는데요 의상이름과 종류 입력받을때 중간에 공백이 존재하는데 getline안써도 무방한가요?감사합니다 좋은하루보내세요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 반례 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 제목과 같습니다. 아래 링크에 해당하는 코드의 반례를 알고싶어서 질문남깁니다. 항상 감사합니다.https://www.acmicpc.net/source/share/2c4c4086a4314e4688e24d7cbe8d1b4b
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
string vs StringBuilder 어느 것을 사용해야 될까요?
안녕하세요! 너무 간단한 질문이지만, 초심자라 .. 질문 드리고 싶습니다 지금까지 String을 합칠때 '+' 을 사용하여 왔습니다. 그런데 StringBuilder에 대해 공부를 좀 하고 보니 이대로 사용하면 괜찮을까? 고민을 하게 되었습니다. 물론, 문제마다 다르겠지만, 코딩테스트를 시험치러 갈때 StringBuilder를 사용하지 않았다고 해서 시간초과가 뜨거나 그렇진 않을지 궁금합니다. 지금부터라도 StringBuilder로 사용하는 것이 맞을까요?
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
도전과제 14078 막대기문제 질문
안녕하세요 선생님 막대기 알고리즘 풀이법에 질문있습니다for i in range(len(stick)-2, -1, -1): if stick[i] > maxN: maxN = stick[i] answer += 1 return answer 이부분에서 len(stick)-2 를 해주는 이유가 무엇인지 질문드립니다. 감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 맞왜틀?
http://boj.kr/1cea1d70b28a4da8b871d48acb7c4907 홀수가 2개 이상이면 팬린드롬이 불가하고 아니면 팰린드롬을 만드는데알파벳 개수가 1개이면 홀수 문자에 넣고 아니면 개수의 반 만큼 word에 넣는다 이때, 홀수개이면 홀수 문자에 넣고 끝에 추가한다 그리고 뒤집은 word를 추가한다 이런 식으로 짰는데 실행하면 맞는데 왜 틀렸다고 뜨는지 궁금합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-a 방문처리차이
http://boj.kr/e4c18d04514e406f88c1af0ce04953cb http://boj.kr/04682590a73c47c992a3437b78c555d0 비슷한 조건인거같은데 한쪽은 통과하고 한쪽은 메모리초과네요 어째서죠?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
10 20 11 12 13 일때 20자리에 11이 갱신되는게 어떻게 되는건지 모르겠습니다
*lowerPos가 뭘 가르키고 배열이 어떻게 되는지 더 자세하게 설명해주시면 안될까요 ㅠㅠ
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
매출액의 종류 문제 질문있습니다.
해당 문제를 다음과 같이 풀었는데 RunTime Error가 발생하는 이유가 뭘까요 ?혹시 시간초과가 되는것일까요 ? import java.util.HashMap; import java.util.Scanner; public class No3 { public static void solution(int n, int m, int[] arr) { HashMap<Integer, Integer> map = new HashMap<>(); int[] answer = new int[m]; int lt = 0; for (int i = 0; i < m; i++) { map.put(arr[i], map.getOrDefault(arr[i], 0) + 1); } answer[0] = map.size(); for (int rt = m; rt < n; rt++) { map.put(arr[lt], map.getOrDefault(arr[lt], 0) - 1); map.put(arr[rt], map.getOrDefault(arr[rt], 0) + 1); if (map.get(arr[lt]) == 0) map.remove(arr[lt]); answer[++lt] = map.size(); } for (int x : answer) System.out.print(x + " "); } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int[] arr = new int[n]; for (int i = 0; i < n; i++) arr[i] = sc.nextInt(); solution(n, m, arr); } }
-
해결됨코딩테스트 [ ALL IN ONE ]
강의 자료에 첨부된 사진 개인 블로그에 사용해도 되나요?
혹시 dp 설명중에 사용하신 사진과 설명을 gif로 해서 블로그에 적어놓으면 이해에 도움이 될거 같은데 사용해도 될까요? 출저는 밝히도록 하겠습니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
9-3. 결혼식 질문있습니다.
import java.util.*; import java.io.*; class Main { static int N; static class Time implements Comparable<Time>{ int time; char state; Time (int time, char state) { this.time = time; this.state = state; } public int compareTo(Time t) { if(time > t.time) { return 1; }else if(time == t.time) { if(state != t.state && t.state == 'e') { return 1; } } return -1; } } public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; N = Integer.parseInt(br.readLine()); ArrayList<Time> guests = new ArrayList<>(); for(int i = 0; i < N; i++) { st = new StringTokenizer(br.readLine()); int start = Integer.parseInt(st.nextToken()); int end = Integer.parseInt(st.nextToken()); guests.add(new Time(start, 's')); guests.add(new Time(end, 'e')); } Collections.sort(guests); System.out.println(solution(guests)); } public static int solution(ArrayList<Time> guests) { int ans = 0; int cnt = 0; for(Time t : guests) { if(t.state == 's') { cnt++; ans = Math.max(ans, cnt); } else { cnt--; } } return ans; } }제가 작성한 코드는 위와 같습니다. 강의에서 나온 코드와 거의 흡사한데 채점을 하면 런타임 에러가 발생합니다. 무슨 문제일까요?감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-L 질문입니다.
안녕하세요.저는 set을 사용해서 문제를 해결했습니다. 그런데 시간을 더 줄여보려고 코드를 수정했는데 틀리다고 나옵니다. 수정한 코드가 왜 잘못되었는지 모르겠습니다. 알려주시면 감사하겠습니다. 수정한 코드 http://boj.kr/e812a45ff3e34a8e9a22e97cce7e113f 원래 코드http://boj.kr/039878b27e594e0c90895f1414ab061d
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 팰린드롬 만들기 반례를 찾지 못하겠습니다.
안녕하세요. 강의 잘 수강하고 있습니다.해설 강의 보기 전에 문제를 먼저 풀어봤는데 계속 틀렸다고 나옵니다. 반례를 찾지 못하겠습니다.일단 제가 생각하기엔 알고리즘이 맞는 것 같고 해설 강의와도 사실상 똑같은 알고리즘입니다. 저는 홀수인 경우 짝수인 경우만 나눠서 짰는데 기본적인 원리는 똑같네요. 웬만한 반례를 찾아 돌려봐도 제대로 나오는데 백준은 자꾸 틀렸다고 하네요.http://boj.kr/c698570bbcae4b859fbfdf13b4fac684 뭐가 문제인지 모르겠습니다.