묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
맞왜틀 문의드립니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/c650b428f52f433c841f35d391fe7a7c 시간을 합치지 않고 pair를 사용해서 코드를 짜느라 좀 길어졌습니다...어떤 예외가 있는지 알 수 있을까요ㅠㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
DFS 종화문제 dfs함수 질문입니다.
종화님 문제의 void dfs() 함수가 이전에 배운 방향탐색에서 배운 go() 함수와 같은 것 같은데 그럼 go()함수도 dfs 인건가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-L 질문 있습니다!
http://boj.kr/c662ed4ae3554592adf3f8e8d6fa70eb안녕하세요, 선생님!저는 처음에 풀때 콤비네이션이 아닌카운팅 배열 방법 사용을 생각하여 문제를 풀어보았습니다.풀고 난 뒤에 예외처리가 미흡하여 백준에서 20번 정도 틀렸습니다.반례를 생각하며 가장 앞 부분 가장 뒷 부분 경계 체크를 열심히 하였으나 틀리는 이유를 도무지 모르겠습니다.선생님께서 하신 방법에 대한 이해는 모두 하였으나제 코드의 오류가 무엇일지 정말 궁금하여 질문을 남깁니다ㅠ예외 처리를 많이 하느라 코드가 지저분해 보일 수 있는 점 죄송합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-H 재질문
http://boj.kr/2f84a9840da946a29571c22e8f3ad14e위의 코드는 2%에서 시간초과가 나는 코드입니다.저는 처음에 큰돌님과 같이 등차수열의 합, 구간만큼 빼줘서 RET에 더해준다. 를 생각을 못했고그냥 계속 ret++을 해줬었습니다.해당 코드가 문제가 되는 점은중복인지 찾는 isUnique 라는 함수 때문이겠죠..?제한된 메모리에서 for문의 O(n)이10만, 9.9만...이렇게 연속으로 나올 수도 있어서 시간초과가 걸리는 걸까요? 선생님의 로직과 제 로직의 큰 차이점은 큰돌님은 '이전 것이 중복이 아니면 더이상 생각을 안해준다'이고 저는 '이전 것과 새로 들어온 것을 포함한 구간을 계속해서 중복인지 아닌지 계산한다'이런 점에서 오는 로직의 차이인 것 같아서 질문 드립니다..!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-N 질문있습니다..
안녕하세요 큰돌선생님저는 deque 자료구조와 queue 자료구조를 이용하여 문제를 풀었는데요, 예제입력을 집어넣었을때 정답을 출력하지만 코드가 끝나지 않고 계속 돌아가더라구요.일단 모르겠다 하고 백준에 제출하니 맞았다고 떠서 좀 당황스러운데.. 혹시 어디가 잘못된거 일까요?사진은 예제2 입력을 넣었을때 입니다.예제1번과 3번은 정상적으로 출력 후 코드가 종료됩니다.작성한 코드입니다http://boj.kr/444ceed7f7844486bcc6feeb7d3d8e37
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
못 푼 문제에 대하여
안녕하세요, 큰돌 강사님아직 1주차밖에 진도가 나가지않아, 큰 어려움이 없이 문제를 풀어나가고 있습니다. 그러나 나중에 난이도가 올라가서 풀지 못할정도의 어려운 문제를 만나면 어떻게 하는 것이 좋을지 궁금합니다.저는 최대 30분 ~ 1시간 텀으로 문제를 풀고 이 시간이 초과된다면 강의를 통해 해설을 본다음 다음날 다시 풀어보고 못 푼 문제를 체크하여 강의를 완강후 다시 풀어볼려합니다. 이 방법에 대해서는 어떻게 생각하는지 또는 더 좋은 추천하는 방법이 있는지 궁금합니다.p.s) 좋은 강의 감사합니다.
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
SwapChain에 대해서 질문이 있습니다
SwapChain에 대해서 제대로 알고있는게 맞는지 개념 확인좀 부탁드립니다.SwapChain 사용 이유SwapChaine을 생성할시 프론트버퍼와 백버퍼가 생성이되고 프론트버퍼에 있는 데이터가 모니터로 복사가되고 백버퍼에 다음 장면을 렌더링 하는식으로 돌아가게 된다.이렇게 하는 이유는 버퍼에서 모니터로의 비트 데이터 복사 속도가 매우 느리기 때문에 버퍼를 하나만 쓰다간 모니터에 모든 버퍼의 데이터가 복사되기 전에 먼저 다음 프레임의 비트 데이터가 버퍼에 갱신되어서 모니터에 이전 프레임의 비트 데이터가 복사되던 도중 갑자기 갱신된 현재 프레임의 비트 데이터 복사될수도 있기 때문이다. SwapChain Present 동작 원리비트 데이터를 전부 화면에 복사한 프론트버퍼를 가리키는 포인터와 현재 프레임의 비트 데이터로 갱신된 백버퍼의 포인터가 서로 가리키고 있는 버퍼를 교체하면서 화면 복사와 다음 프레임 데이터 갱신을 이어나가게 한다. SwapChain을 만들때 BufferCount를 1개로 설정해주던데 이거는 백버퍼의 개수이고 프론트 버퍼는 개수를 지정해줄 수 없고 자동으로 한개만 생성된다
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
ConstantBuffer에 대해서 질문이 있습니다.
안녕하세요 ConstantBuffer에 관련되어 강의를 듣는도중 질문이 3가지 정도 생겼습니다.VertexBuffer에 있는 내용을 직접 변경해서 다시 랜더링하기 위해선 처음 설정할때 GPU에서 초기화하고 읽기 전용으로만 생성했기때문에 VertexBuffer를 다시 생성하고 GPU로 다시 복사해줘야 한다고 말하셨는데 GPU에서 읽기, 쓰기 둘다 가능한 D3D11_USAGE_DEFAULT 타입으로 생성해준 뒤 GPU내부에 VertexBuffer를 다시 생성할 필요가 없이 쓰기 작업만 해주면 안되는 건가요? 1번 경우가 어떤 이유때문에 안될것이지만 왜 저렇게 하면 안될까 이유가 궁금해서 쓴 것이고 VertexBuffer를 ReadOnly로 설정하고 Offset을 더해주어 모델링이 움직일때 이러한 개념으로 생각해도 되나요?우선 현재 렌더링 되고있는 Enemy 100마리가 존재하고 100마리 전부의 위치를 각기 다르게 수정해준다고 가정.2-1. VertexBuffer를 통해 위치 정보를 직접 수정하는 경우첫 번재, 현재 VRAM에 100마리 만큼의 모델링 정보가 있는 상태에서 100마리 만큼의 위치변환 정보만 전송해주는 방법.두 번째, CPU가 GPU로 정보를 보내줄때 아예 그냥 100마리만큼의 모델링 정보 + 100마리 만큼의 위치변환 정보를 전부 전달해주는 방법.이 있는데 첫 번째 경우로 한다하면 VRAM에 100마리 만큼의 모델링 정보를 감당할 메모리가 존재하지 않아 불가능하고 두 번째 경우로 한다면 보내주는 용량이 너무 많아 전송 시간이 너무 오래 걸리기 때문에 힘들다라고 이해했습니다.그래서 제가 이해해본 강사님께서 말한 방식이 2-2 방법인데2-2. ConstantBuffer를 통해 위치 정보를 간접 수정하는 경우CPU에서 GPU로 정보를 보내줄때 100마리의 위치 정보만 보내주고 VRAM에 존재하는 하나의 모델링에 100개의 각기 다른 위치 정보를 더해주어 렌더링함으로써 C++에서 l-value 하나에 여러 상수를 더하면서 여러 r-value를 쓰듯이 사용하는 방법.이 경우를 통해 1개의 모델링과 100개의 위치변화 정봅만 있으면 100개의 Enemy를 렌더링 할 수 있다 라고 이해했습니다 혹시 이게 맞나요? 마지막 질문입니다 Update 함수에서 memcpy를 사용해서 subResource.pData에 들어온 데이터를 통해 constantBuffer의 상수 데이터를 변경시킨다고 알고 있는데 이 함수 내용에선 직접적으로 constantBuffer에 subResource.pData의 데이터를 할당하는 부분이 없는데 어디서 할당이 되는 건가요? 혹시 몰라서 subResource.pData와 constantBuffer.Get()의 포인터 정보도 찍어봤는데 서로 다른 곳이였어서 deviceContext에서 자동으로 알아서 전달해주는 건가요?제가 궁금한게 생기면 못 넘어가는 성격이라 질문이 길어서 죄송합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 문제에 대한 질문입니다.
http://boj.kr/53d3d972829a47cc80be8c0da3a25fa0안녕하세요 선생님!문제에 대한 코드를 작성한 뒤 예제에 있는 반례와질문하기에 다른 학생들이 질문하고 선생님께서 찾으신반례 모두 입력에 넣어봐도 정답으로 나오는데 백준에선 계속 틀리다고 합니다ㅠ문법적인 오류인지 간단한 실수 인지 잘 모르겠습니다.
-
미해결[게임 프로그래머 도약반] DirectX11 입문
렌더링 파이프라인 front buffer, backbuffer 질문
RenderBegin()과 RenderEnd() 사이의 렌더링 파이프라인 단계를 거쳐서 다 그리고 나면은_swapChain→Present함수 호출을 통해 ‘고속복사’가 발생한다고 강의에서 말씀하셨는데조금 이해가 안되었던 부분이매 틱마다 RenderBegin() → RenderingPipeLine → RenderEnd()를 거치게 되는 버퍼가 _swapChain의 front buffer ↔ back buffer로 순서가 왔다 갔다 바통터치 하듯이 바뀌면서 렌더링 파이프라인이 진행되는 것인가요?아니면 전면버퍼는 모니터 화면에 계속보여주고 backbuffer가 매틱마다 RenderBegin() → RenderingPipeLine → RenderEnd()거쳐서 다 그려진 완성물(보여줄 데이터)을 front Buffer에 ‘고속 복사’를 하는 방식인가요?문서를 보면 포인터로 빠르게 front buffer, back buffer를 왓다 갔다 한다는데 햇갈리네요…
-
미해결C++20 훑어보기
마지막 formatter 이제 잘 작동하네요~
프로젝트에 써먹어야겠어요~이제 에러 안뜨고 잘 작동해요 마이크로소프트가 수정했나봐용~감사합니다
-
미해결[게임 프로그래머 도약반] DirectX11 입문
Constant buffer 질문있습니다
질문 1. Constant 상수 변하지 않는 이라고 생각하는대offset을 변경한다는게 이해가 잘안갑니다.. 질문 2. (CPU 메모리) 버퍼를 생성하고 GPU Video Memory에 복사한다 가 맞는건가여?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-H
그리디에서 정말 많이 헤매는 학생입니다..!구간을 탐색하다가 만난 것을 다시 만나면s를 하나 늘려주고 e를 s+1로 땡겨 다시 카운팅한다는 것은 알겠습니다만마지막에 등차수열의 합은 왜 나오는지 모르겠습니다!3 1 2 가 남았을 때 while문이 끝나고3 1 2로 만들 수 있는 경우가{3} {1} {2} {3,1} {3,2} {1,2} {3,1,2,}따라서 등차수열의 합이다. 라는 말씀이실까요..?왜 등차수열의 합이 여기서 나오는지 잘 모르겠습니다!경우의 수를 구하는 문제인데 공차가 존재할 때 사용되는 등차수열의 합이 나오는 이유가 뭘까요...그리고 1 2 3으로 가다가 1을 만나 1 2 3 1이 되는 경우1을 버려야 하므로1 2 3 (s = 0, e = 3인 상황입니다, 영상에선 4:13)까지 세주고 ret에 (e-s)를 더한다.이 말이 1 2 3까지 오면서{1}{1,2}{1,2,3}을 만났기 때문에 (e-s)를 더해준다는 말씀이실까요??
-
해결됨CUDA 프로그래밍 (2) - C/C++/GPU 병렬 컴퓨팅 - 벡터 vector 더하기
VS2022 컴파일 에러
예제소스코드12a-vecadd-host.cpp -> vecadd-host.cpp 로 파일명 고치고 common.cpp 랑 2개를 쿠다 프로젝트에 추가해서 컴파일 했는데 링크에러가 납니다.vecadd-host.obj : error LNK2005: "float __cdecl getRMS(float const ,float const ,int,bool)" (?getRMS@@YAMPEBM0H_N@Z) already defined in common.obj파일은 저 2개 뿐인데already defined in common.obj 이런 에러가 여러 개가 뜨는데 뭐 때문일까요?
-
미해결[게임 프로그래머 도약반] DirectX11 입문
버텍스 버퍼를 잘이해못한거같습니다
현재 정점4개를 만든이유는단순 2D 이미지 띄우기 위함인가여?3D 모델의 정점은 모델 마다 다를테니 정점 데이터를 읽어 오는 방식으로 동작 하는 건 가여?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 메모리 초과
안녕하세요. 큰돌강사님, 아무리 코드를 쳐다보아도 문제가 생기는 지점을 못 찾아서 질문 남깁니다. 어떤 부분이 잘못되었는지 확인 부탁드립니다 http://boj.kr/fa8351292d3d46639bd4cdcff1ee2b2b
-
미해결[게임 프로그래머 도약반] DirectX11 입문
Animation 보간 관련 질문드립니다
애니메이션 보간 결과물이 너무 어색해 생각해보니각 키프레임 데이터에서 꺼내온 SRT를 보간 한 후에애니메이션 트랜스폼을 결정해줘야 의도처럼 되더라구요.근데 애니메이션의 Transform을 SRV로 만들어 셰이더로 던져줘서 보간 계산을 할 수 있는 적절한 위치를 모르겠습니다.셰이더에서 하기에는, BONE INDEX를 처음부터 돌면서 현재 프레임의 Transform을 구하는 동일한 과정을 vertex마다 계속 하게되고,CPU에서 처리하기에는 텍스처를 사용하는 의미가 퇴색되는 것 같아 질문드립니다. Transform을 Texture화 하면서 정확한 보간을 할 수 있는 방법이 있나요
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-J 테케는 다 맞는데 틀렸다고 나옵니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.풀이를 보지 않고 직접 풀었는데,0을 만나는 경우는 이동거리를 증가시키지 않는 형태로 하여 구현하였습니다.테스트 케이스는 다 통과하는데 제출하면 틀렸다고 나오는데 반례를 못찾겠습니다. 기존에 있는 다른 분이 올리신 비슷한 질문에 있는 반례도 통과를 해서 질문을 올리게 되었습니다. 감사합니다.http://boj.kr/f7e741dc7e5145bc9ea65dc83639e531
-
해결됨홍정모의 따라하며 배우는 C++
(6.9) 포인터 주소를 찍어보는 구간에서 질문이 하나 생겼어요.
안녕하세요! 6.9강의에서 포인터 주소를 하나하나 찍어보는 구간에서 질문이 하나가 생겼습니다. #include <iostream> using namespace std; int main() { int i = 2; int *ptr_i = &i; double d = 3.14; double *ptr_d = &d; cout << "int형 포인터 ptr_i의 크기는 " << sizeof(ptr_i) << endl; cout << "ptr_i가 참조하는 변수 자체의 크기는 " << sizeof(*ptr_i) << endl; cout << "double형 포인터 ptr_d의 크기는 " << sizeof(ptr_d) << endl; cout << endl; cout << "------이하 ptr_i------" << endl; cout << "-1번째 : " << uintptr_t(ptr_i - 1) << endl; cout << "0번째 : " << uintptr_t(ptr_i) << endl; cout << "1번째 : " << uintptr_t(ptr_i + 1) << endl; cout << "2번째 : " << uintptr_t(ptr_i + 2) << endl; cout << endl; cout << "------이하 ptr_d------" << endl; cout << "-1번째 : " << uintptr_t(ptr_d - 1) << endl; cout << "0번째 : " << uintptr_t(ptr_d) << endl; cout << "1번째 : " << uintptr_t(ptr_d + 1) << endl; cout << "2번째 : " << uintptr_t(ptr_d + 2) << endl; } 결과값은 아래와 같이 나왔습니다.int형 포인터 ptr_i의 크기는 8ptr_i가 참조하는 변수 자체의 크기는 4double형 포인터 ptr_d의 크기는 8 ------이하 ptr_i-------1번째 : 61244665680번째 : 61244665721번째 : 61244665762번째 : 6124466580 ------이하 ptr_d-------1번째 : 61244665440번째 : 61244665521번째 : 61244665602번째 : 6124466568 포인터는 결국 '주소를 담고있는' 변수에 지나지 않잖아요?x64 환경에서 포인터의 크기는 어떤 자료형을 가리키던 상관없이 8바이트인데, 그렇다면 ptr_i에서 -1, +1 연산을 수행하면 결과값들이 8씩 차이가 나야하는게 맞지않나요? 제가 이해한 바로는 (물론 잘못 이해하고 있겠지만..) 포인터는 변수니까, 해당 포인터를 담고있는 또 다른 메모리 공간이 있을거란 생각이 들어서요.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-J 강의 질문
안녕하세요 선생님 양질의 코드 매번 감사합니다.강의를 들으며 살짝 헷갈리는 부분이 있는데요, 가장 먼 미래에 참조되는것을 swap 하는 알고리즘이라 하셨는데 이 가장 먼 미래라는게 상대적으로 먼 미래를 의미하는건가요? 예를들어 콘센트에 2번, 3번이 들어가 있을때앞으로 나올 2번과 3번이 둘다 있는경우 이 두가지 중 더 멀리있는 거랑 swap 하는 건가요? 추가로 16번 라인에서 j 의 시작이 i + 1이 아닌 i 가 아닌지 생각이 듭니다.만약 콘센트 2개 공간이 있고 2, 3, 1, 2, 3 순서로 사용을 한다고 할때, 먼저 2와 3이 콘센트에 들어가고 그다음 1이 들어갈때 이미 콘센트 공간이 가득차있으므로 2와 3중에 더 멀리 있는번호를 swap 하는건데 만약 i가 아닌 i + 1 부터 확인하게 된다면 1부터 확인하는게 아니고 2부터 확인하게 되는게 아닌가요? 그럼 한칸을 빼먹는거 같은데 이 부분이 좀 헷갈립니다.http://boj.kr/680d6abc7e004d7886939b2513c31723