묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
히든퀘스트 브루트포스 질문
안녕하세요 선생님 브루트포스 히든퀘스트를 풀고 있는데요, 계속 시간초과가 떠서 질문드립니다. 재귀 완탐으로 풀었는데 시간초과가 뜨네요. 그래서 다른분들 풀이 구글링해서 봤는데 대부분 3중 for문 콤비네이션으로 해결했더라구요. 제 로직에는 문제가 없다고 생각했는데, 혹시 제 방법으로는 해결할 수 없는 문제인가요? 나름 가지치기도 했는데 안풀립니다ㅠㅠ2798 블랙잭 문제입니다http://boj.kr/22b25fa79ad74c69b0797537b4a7669f
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-D 질문있습니다 ㅠㅠ
안녕하세요 큰돌님https://www.acmicpc.net/submit/2583/65432177 제가 짠 코드 입니다.. ㅠㅜ답안지를 보고 이해 할려고 해도 이해가 되지 않아 질문 드립니다.. 저랑 배열 사이즈(m, n ,x y)가 다른 점에서 이해가 힘드네요. 저는 배열을 x y 좌표축과 똑같이 봐고 시도 해봤습니다. 그래서 궁금한 점은 3가지 입니다.어떻게 x1~x2까지 사각형을 색칠 할 때 x2는 포함하지 않으셨나요?탐색 범위 설정시에 m과 n 초과면 continue를 하는게 아닌가요?함수 호출 횟수가 넓이인게 정확하게 이해가 되지 않습니다 ㅠㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
트리 문제 질문드려요
vector<int> tree[51]; int cnt, a; void go(int node) { if (tree[node].size() == 0) { cnt++; return; } for (auto& leaf : tree[node]) { if (m == leaf) continue; go(leaf); } return; } int main(void) { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n; for (int i = 0; i < n; i++) { int tRoot; cin >> tRoot; if (tRoot == -1) { a = i; continue; } tree[tRoot].push_back(i); } cin >> m; if (m == a) { cout << 0; return 0; } go(a); cout << cnt; return 0; }안녕하세요이 코드는 어떤 점에서 예외가 생겨서 틀리는 걸까요?? 혹시 루트 노드만 남았을 때가 예외일까요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-I 17071 문제 질문있습니다.
안녕하세요 큰돌님이 문제 제가 이해를 못하고 있는게 있는데요일단 결론부터 말하면info[2][500000] 처럼 배열을 2차원으로 만들어서 홀,짝 시간으로 분할해서 문제를 푸는것과그냥 info[500000]로 각 배열 요소에 시간을 기록해서 배열을 순회하면서, 홀짝 구분해서 답을 찾는거랑 무슨차이인지 잘 모르겠습니다.일단 아래 제풀이는 틀렸습니다.주어진 테스트 케이스는 맞는데백준게시판 반례들 몇개가 틀리게 나오는데요...(ex 입력 27297 339652 --> (답 : 425 , output : 426)대부분 1~2 차이로 틀립니다.이것 저것 다른 답안들이랑 비교하면서 디버깅해보면 info 배열을 구성하는과정에서 틀린게 있는것 같은데요.......위에 굵게+기울임 글씨체로 쓴 부분 처럼 1차원,2차열 두가지 배열이 정확히 어떤차이가 있는건지 잘 모르겠습니다.예를들어서, 제가 생각하기에는 2차원 배열을 통해서 홀수,짝수 시간을 구분할 경우에는 특정 지점 A에서 무조건 info[0][A], info[1][A] 둘중에 하나만 값을 가져야 한다고 생각하는데 제가 틀렸나요?(왜냐면 BFS를 통해서 최단경로를 찾으니까 info[0][A] info[1][A]에 두개에 값이 기록될수가 없음) // Example program #include <iostream> #include <string> #include <vector> #include <algorithm> #include <queue> #include <stack> #include <unordered_map> #include <map> #include <limits.h> using namespace std; int n,k; int info[500002]; // 수빈이 위치,시간 정보 queue<int> q; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin>>n>>k; fill(&info[0], &info[500001], -1); if(n==k){ cout<<0<<'\n'; return 0; } //------------------------------------------------------------ // BFS로 수빈이 위치 전부 구하기 else { q.push(n); info[n]=0; while(q.size()){ int prev=q.front(); q.pop(); for(int next :{prev-1,prev+1, prev*2}){ if(next<0 || next>500000) continue; if(info[next]!=-1) continue; info[next]=info[prev]+1; q.push(next); } } //-------------------------------------------------------------- // 동생위치를 구하면서 -> 동생,수빈이 위치가 같아지는 지점을 찾음 -> // 그리고 수빈이가 소모한 시간이 동생보다 적거나 같으면 -> 시간차이가 짝수인지 확인 int pos=k; // 동생 초기 위치 int t=0; // 초기 시간 while(pos<=500000){ if(info[pos]<=t){ // 특정 동일위치에서 수빈이가 소모한 시간이 더 적을때 if((info[pos])%2 ==0 && t%2==0){ //둘의 시간이 짝수이면(=시간 차이가 짝수면) cout<<t<<'\n'; break; } else if((info[pos])%2 && t%2){ //둘의 시간이 홀수이면(=시간차이가 짝수면) cout<<t<<'\n'; break; } } t++; pos+=t; } if(pos>500000) cout<<-1<<'\n'; } }
-
미해결홍정모의 따라하며 배우는 C++
3.9 연습문제 기사
#include <iostream>#include <bitset>int main(){ using namespace std; unsigned char option_viewed = 0x01; unsigned char option_edited = 0x02; unsigned char option_liked = 0x04; unsigned char option_shared = 0x08; unsigned char option_deleted = 0x80; unsigned char my_article_flags = 0; cout << "option_viewed " << bitset<8>(option_viewed) << endl; cout << "option_edited " << bitset<8>(option_edited) << endl; cout << "option_liked " << bitset<8>(option_liked) << endl; cout << "option_shared " << bitset<8>(option_shared) << endl; cout << "option_deleted " << bitset<8>(option_deleted) << '\n' << endl; //view article my_article_flags |= option_viewed; cout << "option_viewed " << bitset<8>(my_article_flags) << endl; //click like my_article_flags ^= option_liked; cout << "option_liked " << bitset<8>(my_article_flags) << endl; //click like again my_article_flags ^= option_liked; cout << "option_liked " << bitset<8>(my_article_flags) << endl; //delete if (my_article_flags & option_viewed) { my_article_flags |= option_deleted; } cout << "option_deleted " << bitset<8>(my_article_flags) << endl; return 0;}무슨 문제가 있는지 마지막 delete에서 build가 되지 않는 오류가 발생합니다. 이유가 무엇일까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-H 비밀번호 발음하기 질문드립니다
안녕하세요!궁금한 점이 있어서 질문 드립니다.2-H 문제 해설에서 s[i]를 int형으로 반환해서 풀이하시던데 혹시 특별한 이유가 있을까요??저는 s[i]를 그냥 char형으로 풀었습니다.http://boj.kr/9de33b348bcb40ee958c4cfbc845c305
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 질문있습니다
https://www.acmicpc.net/source/65401116강의를 보기 전에 작성한 코드입니다. 문제에서 주어진 예제는 다 맞게 나오는데 어느 부분이 잘못되었는지 모르겠습니다ㅜㅜ
-
미해결홍정모의 따라하며 배우는 C++
char *[] 자료형에 대해 질문 드립니다.
안녕하세요 강의를 수강 중에 char*[]자료형에 대한 질문이 생겨 글을 남깁니다제 컴파일러에서는 해당 방식으로 문자열을 저장하면 오류가 발생하는데, 이는 컴파일러 버전 때문인가요..?앞에 const를 붙여야 정상적으로 초기화가 되는데, main의 파라미터로 쓰이는 char *argv[]는 오류가 발생하지 않아 문의드립니다.
-
미해결홍정모의 따라하며 배우는 C++
수업 강의안 질문
혹시 강의안 정리되어 있는게 있을까요?어디 정리해서 까먹을때 마다 찾아보고 싶어서요.감사합니다.
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
59번 종료조건
59번에 종료 조건이 없는데도 어떻게 값이 정상적으로 나오는건지가 궁금합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하십니까 큰돌 선생님!!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/8d7c38a0a361454191ef6df051497ac7이 코드는 왜 안되는지 잘 모르겠습니다 ㅠㅠㅠ
-
해결됨[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
unordered_set 에서의 contains 함수
강사님 안녕하세요. : 충돌 강의에서 unordered_set::contains 함수를 사용해서 set에 저장된 키값을 찾으셨는데요(43분쯤에)대신에 find 함수를 사용하면 안되나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
재귀함수로 구현한 조합 함수 관련 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. void combi(int a, vector <int> b) { if (b.size() == k) { print(b); return; } for (int i = a + 1; i < n; i++) { b.push_back(i); combi(i, b); b.pop_back(); } return; } 위의 함수에서 for문 다음의 return 함수를 없애도 함수의 동작에는 문제가 없고 더 빨리 동작하는데 return을 쓸 때의 이점이 있나요? 다른 코드들을 볼 때도 return;이 없어도 동일하게 동작하지만 return;이 있는 많은 예문들을 보게 되는데 return;을 코드에 추가하는 그 이유를 알고 싶습니다. 또한 return;을 넣는 순간 동작 시간이 약 0.08초에서 0.22초로 증가하게 되는데 그 이유를 알고 싶습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S java 로 정답 맞히신분 계실까요..?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 로직 자체는 강사님이 알려주신 흐름과 동일합니다..언어만 java로 구현한 것일 뿐인데 시간초과를 계속 밷어내요...혹시 자바로 풀어보신 분이 있으시다면.. 어떤 부분이 문제일것 같은지 힌트라도 슬쩍 부탁드립니다..ㅠimport java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { public static ArrayList<Integer>[] graph; public static boolean[] visited; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); String[] input = br.readLine().split(" "); int N = Integer.parseInt(input[0]); int M = Integer.parseInt(input[1]); int[] resArr = new int[N + 1]; visited = new boolean[N + 1]; graph = new ArrayList[N + 1]; int mx = -99; for(int i = 1; i <= N ; i++) graph[i] = new ArrayList<>(); for(int i = 0; i < M; i++) { StringTokenizer st = new StringTokenizer(br.readLine()); int from = Integer.parseInt(st.nextToken()); int to = Integer.parseInt(st.nextToken()); graph[to].add(from); } for(int i = 1; i <= N; i++) { Arrays.fill(visited, false); resArr[i] = go(i); mx = Math.max(mx, resArr[i]); } for(int i = 1; i < resArr.length; i ++) if(resArr[i] == mx) sb.append(i).append(" "); System.out.println(sb); } public static int go(int idx) { visited[idx] = true; int cnt = 1; for(int next : graph[idx]) { if(!visited[next]) { cnt += go(next); } } return cnt; } }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
왜 틀렸는지 도저히 모르겠습니다
http://boj.kr/cf2c8a947f5041b69efd55961657526cmax함수 빼고 로직은 다 똑같은 거 같은데 왜 제 코드는 틀린건지 이해가 안됩니다.. 부탁드려요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-T 질문드립니다.
http://boj.kr/153cb07e167d4de1a892d2dfa6fe08c1생각한 반례나 게시판에 반례 다 입력해보고 display 함수로 다 찍어봐도 문제가 없어보이는데25%에서 자꾸 터지고 있습니다.영상보고 이해는 큰돌님 풀이를 이해 했으나, 제가 초기에 작성한 코드에서 어디가 이상이 있는 지 궁금해서 질문드립니다.구조체에 name 변수는 display로 찍어보고 싶어서 선언했습니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
이중연결리스트 list에 대해 질문있습니다
이중연결리스트라고 말씀하셨는대수업내용 들어보니까 [1] <->[2] <->[3] <->[4] <->[Header] <->[Header]노드가 [1]노드랑 연결되어있으면원형연결리스트 아닌가요..?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-L 질문입니다.
http://boj.kr/8eb2af8984ed4372953a94ed5a6b5d48 처음부터 복잡하게 스크립트를 작성하는건 피하고싶기도 하고, 클래스 구조 설계도 연습해볼겸 Time이라는 클래스를 써서 구현했습니다.팀ID와 득점시간을 받아서 히스토리에 추가합니다.현재 동점일 때 승리 중이었던 팀의 누적 시간에 현재 득점시간 - 승리시작시간을 더합니다.현재 우위일 때 승리시작시간이 초기화 되어있을 경우 자신의 ID와 현재 시간을 기록합니다.while이 모두 끝나고(경기가 끝나고) 승리 중이었던 팀의 누적 시간에 48:00 - 승리시작시간을 더합니다. 여전히 private TC에서 막히네요..
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
반복 for문 Combination으로 하였는데 안됩니다.
저는 반복문 Combination으로 풀었는데 10% 진행 중 틀렸다고 나옵니다.염치 불문하고 질문 드립니다... http://boj.kr/25a5910a7d7a426f89ab47edf1c96199
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-F count 함수 질문
count 함수 내부가 이해가 안되서 질문 올립니다. if (word && (word & mask) == word)설명 해 주신 내용으로는 배운 것을 10진수 숫자로 표현 (mask) 한 값과 word 의 and 비트연산으로 나온 값이 자신이면 배운걸로 이해할 수 있는 단어가 되는 것을 알겠는데요 그럼 그냥 단순히(word & mask)==word 만 하면 되는 것 아닌가요? 그 앞에 word && 은 왜 있는걸까요?