메모리 할당에 관하여
해결됨
홍정모의 따라하며 배우는 C++
변수의 메모리 할당은 언제 이루어지는 건가요? 변수를 선언하면 쓰레기값으로 초기화되는 건가요? 이 경우 선언 즉시 메모리가 할당되는 게 맞는지도 궁금합니다. 혹은 사용자가 선언 및 초기화 시에 메모리 할당이 이루어지는 걸까요? 혹은 해당 변수에 무언가 대입되어야 메모리 할당이 이루어지는 건가요?
- c++
173만명의 커뮤니티!! 함께 토론해봐요.
해결됨
홍정모의 따라하며 배우는 C++
변수의 메모리 할당은 언제 이루어지는 건가요? 변수를 선언하면 쓰레기값으로 초기화되는 건가요? 이 경우 선언 즉시 메모리가 할당되는 게 맞는지도 궁금합니다. 혹은 사용자가 선언 및 초기화 시에 메모리 할당이 이루어지는 걸까요? 혹은 해당 변수에 무언가 대입되어야 메모리 할당이 이루어지는 건가요?
미해결
it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
sort(T.begin(), T.end()); 하는 이유가 궁금합니다. 정렬 안해도 if(T[j].when<i) break;에서 걸러질텐데 앞에서 소팅하는 이유가 있는건가요?
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/2b3465bfb212482695e3993e7f8ba7f0 탑다운으로도 풀어보고 싶어서 시도해봤으나 실패했습니다. 로직에 이상이 있는 것인지, 반례는 어떤 것인지 파악하는 것에 어려움을 겪고 있어 질문 드립니다. 항상 감사합니다!
해결됨
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
저는 string이 아니라 char[] 로 받아서 만들어 봤는데 왜 틀렸는지 잘 모르겠습니다 ㅠㅠ #include <bits/stdc++.h> using namespace std; int alphabet[26]; char input[100]; int main() { cin >> input; // a -> 97 for (int i = 0; input[i] != '\0'; ++i) alphabet[(int)input[i] - 97]++; for (int i = 0; i < 26; ++i) cout << alphabet[i] << " "; return 0; }
미해결
홍정모의 따라하며 배우는 C++
Virtual을 상속받는 함수에서 뒤에 override를 달아주는데 앞에도 virtual을 달아줄 필요가 있을까요?
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
http://boj.kr/bbd43e4a75674d3eb7eb8f94b603239c 저는 웅덩이가 이어져 있거나 웅덩이가 끝나는 곳 까지 합쳤을 때 판자의 길이이하라면 웅덩이를 서로 합치는 방식으로 코드를 작성했는데 어떤 점이 잘못된 것인지 모르겠습니다.
해결됨
[게임 프로그래머 도약반] DirectX11 입문
애니메이션 파트의 ReadSkinData()함수를 통해 blendIndices, blendWeights를 쓰는 과정에서 질문이 있습니다. 아래 ReadSkinData() 함수는 보시는 바와같이 사용하는 모든 Mesh를 순회하며 그 Mesh 속에서 연관된 Bone을 또 하나하나 전부 순회하는 과정에서 그 Bone에 영향을 받는 Vertex에 blendIndices, blendWeights를 쓰도록 구성이되어 있는데 그렇다면 서로 다른 Mesh에서 동일한 Bone과 연관되어 있다고하면 똑같은 Vertex를 두번 이상 갱신하게 되는 건가요? 만약 이게 아니라면 애초부터 하나의 Bone이 2개 이상의 Mesh와 연관이 될 수가 없나요? 전자가 성립한다면 BlendData가 수치상으로는 문제가 없지만 동일한 값을 할당하는 것을 몇번 더 반복해야되는 경우가 생길수도 있어서 궁금해서 질문 드립니다
미해결
[게임 프로그래머 도약반] DirectX11 입문
vertex shader를 처리할때 _vertexBuffer에 들어있는 꼭짓점을 받아서 좌표를 변환하는 과정으로 이해했습니다. ia과정에서 나오는 결과물이 mesh라고 하셨는데 이부분에서 약간 혼동이 있는 것 같습니다. 제가 생각한 바로는, IA과정 에서는 아직 mesh가 그려지진 않았고, 각 점들과 layout, 그 점들로 무엇을 그릴지에 대한 정보가 있는 상태입니다(삼각형). vertexshader에서 좌표계 처리를 하고 rasterize과정에서야 점들끼리 잇고 보간을 합니다. (렌더링 범위 지정) 이후 PS과정에서 shaderResource와 uv값을 이용해서 실제 색을 칠하는 과정 (수치적으로)을 거친 후에 output merge과정에서 indexBuffer를 참조하여 backBuffer에 실제 렌더하는 과정을 거친후에 고속 복사를 하여 렌더링을 완료하게됩니다. 해당 렌더링 프로세스를 제가 잘못이해한 것인지 궁금합니다. (결과적으로 IA작업에서, 꼭짓점 뿐만 아니라 꼭짓점 사이의 EDGE에 대한 정보도 이미 전부 가공된 채로 VS에 넘어가는것이었나에 대해 궁금합니다.. mesh는 꼭짓점 사이의 edge도 그려져 있지 않나요?)
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
http://boj.kr/3c3c09b8b7994f2aa915ac2c4916f166 dfs를 사용하여 visited도 똑같이 적용하여 풀었는데 6%에서 시간초과가 나네요... 큰돌님 코드도 dfs 기반의 코드 같은데 혹시 시간초과가 나는 이유가 있을까요..?
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
가 뭘까요? ㅠㅠ http://boj.kr/43e4d282dd784a6d9869b0bf2a3eb92e 0으로 하면 틀리는데 1로 하면 맞네요
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
lo=1로 하면 테케는 맞는데 http://boj.kr/7ca5d79fc6c84d84be2e2cf475201488 제출하니까 틀려서 질문 드립니다
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 큰돌 선생님 문제를 풀다가 막혀서 질문드립니다. 전체적인 로직은 선생님 코드와 비슷한것 같은데 29점에서 막힙니다. http://boj.kr/d71d2395bc9b4b61ad8153b14682dc35 저는 구조체를 만들지 않고 그냥 배열 4개를 만들어서 따로 값을 저장했습니다. 29점이 나오는데, N이 20을 넘어갔을때 런타임 에러에 걸립니다. 인덱스 참조할때 배열을 범위를 넘어가는 부분도 없는것 같고, 0으로 나누거나 그러지도 않았는데 혹시 어떤 부분이 잘못된것일까요?
해결됨
it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
선생님 안녕하세요! 강의 잘 듣고 있습니다 !! 코딩 스타일에 대해서 질문이 있습니다. 선생님 강의를 보니 map[30][30], ch[30]와 같이 선언을 주로 하시는것 같습니다. 하지만 문제에서는 정점의 수 범위가 최대 20이라서 30까지 필요해보이지는 않아서요. 제가 아직 코딩테스트를 한번도 본 적이 없어서 잘 모릅니다. 회사를 다니면서 최대한 효율적으로 코드를 작성하다보니 요구사항에 맞는 크기로 사용하는 버릇이 있네요. 문제에 맞는 범위의 배열을 선언하고, 그래프 정점이 1 -> 2로 간다면, 선생님은 인덱스 번호를 1로 맞추시는데, 0은 사용하지 않고 낭비됩니다. 이런 사항은 코딩테스트에서 신경쓰지 않아도 될까요? 단순히 문제 해결을 위해 위 사항쯤은 무시하고 편하게 코딩해도 되는지 궁금합니다 !! #include <iostream> #include <vector> using namespace std; static vector<vector<int>> graph; static vector<bool> visited; static int minCost = INT_MAX; int N; void DFS(int v = 0, int cost = 0) { // v에 방문 visited[v] = true; // 지금까지 누적된 비용이 min보다 높다면 리턴 if (cost > minCost) return; // 목적징에 도착 if (v == N - 1) minCost = minCost > cost ? cost : minCost; else for (int i = 0; i < N; ++i) if (!visited[i] && graph[v][i] >= 0) { // v에 방문하기 DFS(i, cost + graph[v][i]); visited[i] = false; } } int main() { int M; scanf_s("%d %d", &N, &M); graph = vector<vector<int>>(N, vector<int>(N, -1)); visited = vector<bool>(N, false); int f, t, c; // from, to, cost for (int i = 0; i < M; ++i) { scanf_s("%d %d %d", &f, &t, &c); graph[f - 1][t - 1] = c; } DFS(); printf("%d", minCost); }
해결됨
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
int check(int temp, vector<int> &v) // vector<int> v 로 쓸 때 다른 부분은 블로그에 있는 코드와 동일하게 작성하고 check 함수의 매개변수 부분에서 vector<int> &v를 vector<int> v로 바꿔서 쓰면 답은 동일하게 나오는데 시간 초과가 나와서 틀리게 됩니다. 왜 시간이 더 길어지는지 알고 싶습니다.
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
#include <bits/stdc++.h> using namespace std; // 난쟁이 9명 int dwarf[9]; int main() { int sum = 0; // 입력받기 & 총 합 구하기 for (int i = 0; i < 9; i++) { cin >> dwarf[i]; sum += dwarf[i]; } // 7난쟁이가 아닌 2명의 합 int remain = sum - 100; // 배열에서 2명의 합이 remain인지 확인하기 for(int i = 0; i < 8; i++) for(int j = i + 1; j < 9; j++) if (remain == (dwarf[i] + dwarf[j])) { dwarf[i] = INT32_MAX; dwarf[j] = INT32_MAX; break; } // 정렬하기 sort(dwarf, dwarf + 9); // 출력 for (int i = 0; i < 7; i++) cout << dwarf[i] << '\n'; } 난쟁이가 아닌 얘들에게 INTMAX 값을 넣고 SORT 시켰는데 왜 이 코드가 계속 틀렸다고 나오는지 잘 모르겠습니다
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님! 강의를 듣고있는데 드디어 문제의 강의를 들을 차례인데 먼저 제가 풀어보고 듣는게 나은지 아니면 그냥 일단 강의를 듣는지 잘 모르겠어서 질문 남겨요! 그리고 강의 교안을 혼자 계속 공부를 따로 해야하는지 부분도 궁금합니다!
해결됨
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
http://boj.kr/950a82ed51544ab2afcab679ab16ca02 안녕하세요 강사님 제가 작성한 코드인데 강사님이 설명해주신 부분과 차이가 있는 부분이 있어서 질문올립니다. 첫 번째 질문 저는 재귀함수를 작성할 때 하위함수를 무조건 호출하고, 가장 하위함수의 결과부터 시작해서 올라오는 방식으로 코드를 짰습니다. 이런 방식을 분할 정복이라고 할 수 있는건가요? 두 번째 질문 위의 방식으로 코드를 작성하기 위해서 시작 지점을 범위의 우측 하단으로 설정했습니다. 그래서 맨 처음 재귀함수를 호출할 때, N을 시작 지점으로 입력받게 됩니다. 이 부분은 잘 처리한건가요?
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
while(lo<=hi){ ll mid=(lo+hi)/2; if(check(mid)){ ret=mid; hi=mid-1; }else lo=mid+1; } 왜 하던것 처럼 이렇게 하면 안되나요? ㅠㅠ ret =mid; lo=mid+1; else hi=mid-1; 이렇게 해야 되네요
해결됨
홍정모의 따라하며 배우는 C++
지금 전문가를 위한 C++ (개정판 3판)으로 공부하고 있습니다. 이 부분에서 오류가 발생해서 구글 검색을 해봤는데도 해결을 하지 못했습니다. 이 예제를 실행시키려면 어떠한 문법을 써야 하나요?
해결됨
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요! 예전에 동일 문제를 파이썬으로 풀다가, c++로 풀어봤는데, 왜 해당 파이썬코드는 정답 으로 인식되는데, 동일하게 짠 c++코드는 오답으로 인식되는지 궁금합니다. def pow_mod(a, b, c): if b == 1: return a % c n = pow_mod(a, b//2, c) if b % 2: return (n * n * a) % c else: return (n * n) % c A, B, C = map(int, input().split()) result = pow_mod(A, B, C) print(result) #include <bits/stdc++.h> using namespace std; typedef long long ll; ll A, B, C; ll tmp, ret; ll calc(ll a, ll b, ll c){ if (b == 1) return a % c; tmp = calc(a, b/2, c); // if b is odd number => only multiple a once if (b % 2) { return (tmp * tmp * a) % c; } else { return (tmp * tmp) % c; } } int main(){ cin >> A >> B >> C; ret = calc(A, B, C); cout << ret << '\n'; return 0; } 어느 것이 반례인지 감이 안옵니다. 혹시 알 수 있는지, 왜 발생하는지 궁금합니다.