묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[게임 프로그래머 도약반] DirectX11 입문
V -> VInv 에서 CameraPosition 을 뽑아쓰는 이유가 이게 맞을까요?
듣다가 뇌가꼬여서.. 질문드립니다.V월드에 배치된 오브젝트들을 카메라를 원점으로 한 좌표로 바꿔주고 VInv카메라 로컬기준 오브젝트들을 다시 월드기준으로 변경시켜준다 카메라 움직임 자체에는 이상이 없음.문제점 : 조명효과(보이기엔 Emissive) 그래서 V -> VInv 로 한 이유는 Emissive 효과에선 물체에서 카메라까(눈) 벡터가 필요한데 (월드에 배치된 물체에서 월드에 배치된 카메라의 벡터가 필요) 기존 CameraPosition 은 V 면 항상 카메라가 원점이니깐 회전을 시켰을때 제대로 적용이 안됐다. 그래서 CameraPosition 을 VInv 에서 뽑아내서 월드 좌표로 바꿔줬다.. 란 제 결론이 나왔습니다.. 이게 맞을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-K lis 배열과 ans의 차이
안녕하세요 선생님.코드는 선생님의 코드를 참고 하여 질문드립니다!코드 이해를 위해 디버깅을 하는 중 테스트 케이스로610 20 9 30 8 50위 값들을 넣었을 때,출력되는 값은410 20 30 50 이지만lis 배열에 남은 값은8 20 30 50 이었습니다.제가 아직 lis 배열의 의미와*lowerPos = num; 으로 바꿔주는 부분에 대해 잘 이해하지 못한 것 같습니다.lis 배열은 그저 정답을 구하기 위한 임시적인 배열이 맞을까요?
-
해결됨삼각형의 실전! CMake 초급
CMake 심화 - CMake 설치 실습 관련 문제
안녕하세요. 강의 정말 잘 들었습니다. 완강하고 나서 cmake 개념이 잘 잡혀서 실무에 도움이 많이 될 것 같습니다.실습을 수행하던 도중 install 실습에서 문제가 발생했는데요. 강의는 "CMake 심화 - CMake 설치" 입니다.강의 영상과 동일한 명령어를 수행했음에도 installing이 수행되지 않는 증상입니다.cd installing mkdir build cd build cmake ..위 작업은 정상적으로 수행이 잘 되고, 아래와 같은 출력결과가 나옵니다.-- The C compiler identification is AppleClang 14.0.3.14030022 -- The CXX compiler identification is AppleClang 14.0.3.14030022 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- BINDIR: bin -- LIBDIR: lib -- INCLUDEDIR: include -- DATAROOTDIR: share -- Configuring done (0.8s) -- Generating done (0.0s) -- Build files have been written to: /Users/user/wd/practice-cmake/installing/build 이후 강의에서는 아래 명령어를 수행하는데, install이 수행되는 것이 아닌 다시 cmake configure와 generate 과정이 수행되는 것으로 보입니다.cmake .. --install-prefix=/Users/user/wd/practice-cmake/installing/build/install다음과 같은 출력결과가 나옵니다.-- BINDIR: bin -- LIBDIR: lib -- INCLUDEDIR: include -- DATAROOTDIR: share -- Configuring done (0.1s) -- Generating done (0.0s) -- Build files have been written to: /Users/user/wd/practice-cmake/installing/build MacOS와 Ubuntu 환경에서 모두 동일하게 문제가 발생했는데요, 제가 어떤 부분을 빠뜨린 것인지 궁금합니다.감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-A 질문이 있습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의 내용 1분~3분에서 말씀하신 내용이 이해가 가질 않습니다. a->d로 간다 했을 때 {a, b, c}의 최소값을 찾아서 d로 가면 된다고 하셨는데 제가 저 말뜻을 제대로 이해했는지는 모르겠지만 제가 생각했을 때는 저 셋을 가는 경로에서 최솟값은 아니어도 d로 갔을 때 최솟값이 되는 경로도 존재할 거라고 생각이 들어서 {a, b, c}경로의 최솟값에서 d로 가면 그게 또 최소 경로?가 된다는 건 이해를 잘 못하겠습니다. 코드를 따라 쳐보면서 코드 자체 만으로도 이해를 해보려 했는데 tfs함수 부분에서 ret을 저렇게 메모이제이션 처리를 하면 무슨 이득이 있는지 모르겠습니다. 제 생각에는 경로가 a b c d 라고 했을 때 (경로가 모두 0이 아니라고 했을 때)a b c da b d ca c b da c d ba d b ca d c b이런식으로 탐색을 할 거라고 생각이 드는데 결국 완전탐색 느낌으로 탐색을 한 게 아닌가? 라는 생각이 듭니다. if (ret != -1) return ret;이 부분이 메모이제이션을 써서 얻을 이득일텐데 저게 a b c d를 돌면서 작동을 하지 않을 거라고 생각이 드는데... 왜 저 코드가 필요한지 잘 모르겠습니다. 막상 실제로 저 부분 빼고 제출하니까 시간초과가 나기는 하는데 제 머리로는 도저히 이해가 안갑니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
c++ 강의 듣고있는데 혹시 강의자료가 있을까요?
강의 자료가 없다면 참고하면서 볼 서적이 있는지도 궁금합니다사실 fundemental c++ 프로그래밍 원리 라는 책을 제가 주문했습니다만은앞의 어셈블리어 파트는 이럴만한 레퍼런스가 없어서 복습할 때 뭘 보면서 해야 할지 모르겠네요
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-I문제 / 시간 빡세다의 정의 궁금증
틀린 코드 : https://www.acmicpc.net/source/share/848fc68966ae4518833cbfa48bae9862 우선 강의를 보고 밑의 코드를 넣어서 문제는 해결한 상태입니다. 아마 시간초과 난 부분도 I/O 부분에서 많이 잡아먹어서 그런 것 같습니다. ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 강의 내용 중에 시간초과가 빡세서 위의 코드를 넣어야 한다고 했는데, 코드를 넣는 것과는 별개로 어떻게 시간초과가 빡센지 문제를 풀면서 생각할 수 있을까요?? 제 논리구조는 아래와 같습니다. 첫 번째 반복문 O(NlogN)코드 상 첫번째 반복문에서는 입력을 N번 받고, map에 넣는 경우는 O(logN) 두 번째 반복문 O(M * (logN + T)) 우선 M번 반복하고, 반복할 때마다 문제를 받는데, 해당 문제의 input을 int로 변환하는 과정 O(T) (문자열 길이 T가정)map에서 탐색하는 과정 O(logN) => 총 시간복잡도 = O(N *( log(N) + T )(M과 N의 최대 범위 같으니 동치해 봤습니다)사실상 T의 길이도 최대 20이어서 미미해서 O(NlogN)이라고 판단했습니다. 저는 1초 = c++에서 1억번이라고 들어서 그것을 기준으로 잡고 해봤습니다.(혹시 이렇게 정의해도 되는건지요?) 단순히 입력값으로 계산만 해봐서는 100000 * log(100000) = 약 160~170만최대 20자인 문자열을 고려해도 => 약 3000만회널널하다고 생각 이렇게 해서 저는 시간초과가 생각보다 빡세지 않다고 생각했는데, 제가 한 논리중에 잘못된 부분이 있는지도 궁금하고, 어떻게 하면 이 문제에서 1초라는 시간초과가 빡세다는 점을 캐치할 수 있는지 궁금합니다.감사합니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-J 시간 초과 원인을 파악하기 어렵습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/edd8ff505fdf4958ad6c322bae97ec8d 혹시 로직에 문제가 있어 시간 초과가 생기는 것인지, pair를 사용해서 시간 초과가 생기는 것인지 궁금합니다. 만약 pair를 사용해서 시간 초과가 생기는 것이라면, 제 생각에는 pair가 큰 영향을 주지 않을 것으로 생각되는데 혹시 어떤 이유에서 pair가 실행 시간에 영향을 줄 수 있는지 궁금합니다. 또, 만약 그렇다면 코딩 테스트에서 pair를 사용하지 말아야 할 경우를 어떤 근거로 판단할 수 있을지 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
순열 조합은 시간복잡도 n!인가요?
n이 너무 커지면 못쓰겠네요??
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
SRT Rotate 부분 값이 이상한 것 같습니다
1번값이 나오려면 2번에서 s와 -s가 바뀌어야 하는것 아닌가요? 1번의 X = xcos - ysin 이 나와야 하면 v와 M의 첫번째 행을 곱해야 X가 나오는데지금의 RotationZ행렬은 xcos + ysin이 나올것 같은데요...
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1781번 질문있습니다
https://www.acmicpc.net/source/share/60c52b6bc2b540bb8d1b1a57d4ce090d기존에 문제를 풀었던 2109번과 동일한 로직이라고 생각되어처음풀때 사용했던 제 로직을 이용하니 문제가 틀렸다고 나와서요, 추후에 큰돌님이 2109번강의해주셨을때 사용했던 로직도 같은로직이라 생각되어 해당 소스를 사용시 정답이 되어서 이부분이 잘이해가 안가서 질문을 남깁니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2차원 배열 회전 강의 올려주시면 안될까요
교안만 봐서 잘 모르겠습니다 ㅠㅠ
-
미해결홍정모의 따라하며 배우는 C++
extern 전역변수 주소값
header 파일에서 전역상수를 미리 초기화하면 헤더를 부를때마다 다른 주소값이 할당된다고 하셨습니다. 그래서 cpp 파일에서 초기화를 따로 해주었습니다.그런데 cpp 파일에서 전역변수를 미리 초기화하면, 모든 다른 파일들에서 동일한 주소값이 할당되던데, 제가 맞을까요? 테스트로 돌려본 코드 첨부합니다. #include <iostream> extern char x; // 이미 extern 에서 초기화됐으면 다시 초기화 x // 아직 초기화 안했으면 여기서 초기화 -> 그럼 다른 파일에서 초기화 안돼!!!!!!!!!!!!!!!! extern void test(); int main() { x = 'm'; // extern에서 초기화 됐어도 변경 가능!!! std::cout << ::x << "\n"; std::cout << x << " " << static_cast<void*>(&x) << "\n"; // 변경 된 것 확인할 수 있음 test(); // 여기서도 변경 return 0; }extern char x = 'e';#include <iostream> extern char x; void test() { x = 't'; std::cout << x << " " << static_cast<void*>(&x) << "\n"; }물론 extern 변수를 선언만 한 후, main 함수가 있는 cpp 파일에서 초기화를 하더라도 마찬가지입니다.#include <iostream> extern void test(); extern char h = 'h'; int main() { h = 'u'; std::cout << ::h << " " << static_cast<void*>(&h) << "\n"; test(); return 0; }extern char h;#include <iostream> extern char h; void test() { h = 'j'; std::cout << ::h << " " << static_cast<void*>(&h) << "\n"; }감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-P 질문이 있습니다!
http://boj.kr/511ca2fd92df4f8886ede64c256bd10e안녕하세요 선생님!재귀를 이용하여 양옆의 톱니들과 비교해 계속해서 갱신해 나가는 방법으로 로직을 구현하였습니다.테스트 케이스로 테스트 중 일부는 맞고 일부는 틀리게 결과가 나옵니다.디버깅도 해보았으나 적절한 문제점을 찾지 못하였습니다.혹시 로직에서 틀린 부분이 있을까요?제 눈이 더 이상 보이지 않아서 질문 드립니다ㅠㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-B counting star 질문
안녕하세요 선생님for(char a : str){cnt[a - 'a']++;}이 부분이 이해가 잘 되지 않습니다..ㅠㅠ cnt[a-'a']++ 이면 cnt[0]의 인덱스만 증가한다는 거 아닌가요??아니면 여기서 a가 str배열을 나타내고 있는 것인가요?어떤 메커니즘인지 잘 모르겠습니다ㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질문있습니다.
문제 : 긍정왕 홍철이의 구걸 여행제가 코드는 다 맞았는데 ny,nx를 전역변수로 해주니 값이 다르던데 왜 다른지 잘 모르겠습니다.보통 ny,nx는 지역변수로 해줘야 하나여?#include <bits/stdc++.h>using namespace std;int a[3][3] = {{10,20,21},{70,90,12},{80,110,120}};const int dy[] = {-1,0,1,0};const int dx[] = {0,1,0,-1};int visited[3][3];int ny, nx;vector<int> v;void print() { for(int i : v) cout << i << ' '; cout << '\n';}void dfs(int y, int x) { visited[y][x] = 1; v.push_back(a[y][x]); if(y == 2 && x == 2) { print(); return; } for(int i = 0 ; i < 4 ; i++) { ny = y + dy[i]; nx = x + dx[i]; if(ny < 0 || ny >= 3 || nx < 0 || nx >= 3) continue; if(visited[ny][nx]) continue; dfs(ny,nx); visited[ny][nx] = 0; v.pop_back(); }}int main() { dfs(0,0);}
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-A 일곱난쟁이 공유 소스 오류 질문
선생님께서 올려주신 공유 소스를 dev c++ 컴파일 하였을 때 오류가 납니다 ㅠㅠ 문제가 무엇일까요? 마지막 for(int i : v) cout << i << " "; 여기서 빨간 표시가 뜨더라구요..!!http://boj.kr/6b0acb8d4af043f88800c74b72d7761010 9 C:\Users\PC\Desktop\AA\main.cpp [Warning] extended initializer lists only available with -std=c++11 or -std=gnu++1129 14 C:\Users\PC\Desktop\AA\main.cpp [Error] range-based 'for' loops are not allowed in C++98 mode
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 질문 있습니다.
일단 모든 케이스에 대해 다 정답처리가 됐지만, 틀렸다고 합니다. 그래서 제가 왜 그런지 잘 모르겠고 의문점을 가져서 질문을 하였습니다.첫번 째 주석을 보시면 저는 저런식으로 생각했는데 저렇게 하는게 시간복잡도상 더 효율적이라고 판단하는데 어떻게 생각하는지 궁금합니다. 메모리도 128MB라 충분하다고 판단하여 저렇게 썼습니다.어떤 점에서 이게 틀린지 지적해주시면 감사하겠습니다. http://boj.kr/4196de180bb04eac9c50cd3825761e1e
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[이분탐색] 최댓값 설정
안녕하세요. 이분탐색 문제를 풀다가 질문이 생겨서 문의남깁니다. 6-F의 경우 최댓값을 1e18+4로 설정합니다.http://boj.kr/cb329d7bb6e049b590ebc6c647d69f5c 이에 반해, 6-G의 경우 최댓값을 1e9로 설정하는데요.(hi = 1e18로 하면 틀렸다고 뜹니다.)http://boj.kr/cddbd0a20bc54eb7ba549c25c6f3b187 그 이유를 알 수 있을까요??어떤 기준으로 최댓값을 설정해야 하는지 모호합니다.
-
미해결[게임 프로그래머 도약반] DirectX11 입문
Assimp bone 파싱 에러 질문드립니다.
모델, 애니메이션때 사용하셨던 모델이 mixamo의 모델인 걸로 알고 있는데 제공해 주신 모델외에 제가 새로 mixamo에서 다운받거나, 언리얼 리소스를 뜯어서 가져온 fbx 모델 모두 저런식으로 불필요한 bone들이 생깁니다. 제가 작년에 dx12강의를 들었어서 제공해주신 fbxloader를 좀 수정해서 fbx파일 한정으로 일부 해결하기는 했습니다. 혹시 파싱 문제를 해결할 방법이 있을까요?? 위에 사진은 수업때 제공해주신 소스코드에 모델만 바꿔서 파싱한 사진입니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-G 맞왜틀 질문입니다.
http://boj.kr/81a1ae0b49434b32aa98a3a34c0c8f42 반례를 찾는 것에 어려움을 느껴 질문드립니다.좋은 강의 감사드립니다!