묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-G 비슷하게 했는데 5 17 넣었을때 4가 아니라 5가 나오는이유
가 뭘까요 ㅠㅠhttp://boj.kr/11e077cba3d4416581adf491dec7bfde
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D q에 fire 거리 부분
fire_check[ny][nx]!=INF면 continue잖아요ny nx에 값(!INF인값)이 이미 존재하는데 불이 여러개라fire_check[ny][nx]>fire_check[y][x]+1 인 경우의수는 생길 수 있는데 bfs라 이럴 경우가 안생겨서 굳이 비교 할 필요 없게되나요? 질문이 좀 그런가요 ㅠㅠ
-
해결됨[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
class와 메모리
우선 강사님 덕분에 메모리를 제대로 배우고 있습니다 항상 감사할 따름입니다강사님만큼 메모리를 정확하고 이해하기 쉽게 설명하시는 분은 없는거 같습니다 다시한번 감사합니다-본론-메모리는 Code, Data, Heap, Stack 영역으로 나누어 진다고 배웠습니다강의중 드디어 class가 나왔는데class와 메모리에 대해 너무 이해안가는 부분이 하나 있어서 이렇게 질문드리게 되었습니다바로 Code영역인데요 class가 호출되기 전에는 Code영역에 있다가호출되고 난 후에도 멤버함수는 Code영역에, 멤버변수는 Stack영역을 차지한다고 배웠습니다(제가 여기까지는 잘 이해했나 모르겠네요..) 그렇다면 여기서 한가지 드는 의문이 바로Code영역은 무한인가요??만약에 정말 말도 안될만큼의 엄~~~~~~~청나게 많은 함수들을 class안에 작성했다고 가정했다고하면Code영역에도 한계가 있어야되는거 아닌가요아무리 찾아봐도 그저 "Code영역은 충분합니다" 라는 얼렁뚱땅한 답변만 있을뿐(강사님 말고 다른사람들)아무도 "왜 충분한가"를 정확히 알려주는 곳이 없네요..이 의문이 너무 해결이 안됩니다 ㅠㅠ 꼭 알려주셨으면 좋겠습니다
-
미해결Do it! 알고리즘 코딩테스트 with C++
i==k일떄 i++안해도되지않나요
i==k인 경우는 a[i]에 1을 더하더라도 큰 값이 나올텐데i를 오른쪾으로 옮겨버리면 사실상 a[k]보다 더 큰 값만 나오는거 아닌가요?
-
미해결홍정모의 따라하며 배우는 C++
포인터 자체의 주소 vs 포인터가 가리키는 주소
#include <iostream> using namespace std; int main() { int array[5] = { 1, 2, 3, 4, 5 }; int *ptr = array; // ptr 자체의 주소는 다름, 그러나 array의 첫번째 요소를 가리킴! cout << "ptr: " << ptr << endl; // 포인터가 가리키는 주소 == array 첫번째 요소 주소 cout << "&ptr: " << &ptr << endl; // ptr 자체의 주소 (array랑 다름) cout << "array: " << array << endl; cout << "sizeof(ptr): " << sizeof(ptr) << endl; // pointer 자체의 사이즈 cout << "sizeof(ptr): " << sizeof(&ptr) << endl; // 마찬가지 return 0; } 제 질문은ptr을 출력했을때는 포인터가 가리키는 주소, 즉 array의 주소를 반환하면서,왜 sizeof(ptr)에서는 &ptr을 하지 않았는데도 pointer 자체의 주소에 대한 size를 반환하나요?? 앞선 논리처럼 array 첫번째 요소,[0]에 대한 size를 반환해야하는 것 아닌가요? 감사합니다.
-
미해결홍정모의 따라하며 배우는 C++
IntArray 클래스 변수인 int_array의 소멸자가 왜 호출되는건가요?
#include <iostream> #include <cassert> #include <initializer_list> using namespace std; class IntArray { private: unsigned m_length = 0; int* m_data = nullptr; public: IntArray(unsigned length) :m_length(length) { m_data = new int[length]; } // initializer_list have not support [ ] operator. IntArray(const std::initializer_list<int>& list) : IntArray(list.size()) { int count = 0; for (auto& element : list) { m_data[count] = element; ++count; } //for (unsigned count = 0; cout < list.size(); ++count) // m_data[count] = list[count]; // error } ~IntArray() { delete[] this->m_data; } // TODO : overload operator = /*IntArray& operator = (const IntArray& arr) { if (this == &arr) return *this; delete[] m_data; m_length = arr.m_length; if (arr.m_data != nullptr) { m_data = new int[m_length]; for (unsigned i = 0; i < m_length; ++i) m_data[i] = arr.m_data[i]; } else m_data = nullptr; return *this; }*/ friend ostream& operator << (ostream& out, IntArray& arr) { for (unsigned i = 0; i < arr.m_length; ++i) out << arr.m_data[i] << " "; out << endl; return out; } }; int main() { int my_arr1[5] = { 1,2,3,4,5 }; int* my_arr2 = new int[5] {1, 2, 3, 4, 5}; auto il = { 10,20,30 }; IntArray int_array{ 1,2,3,4,5 }; cout << int_array << endl; int_array = il; cout << int_array << endl; return 0; }질문글이 좀 지저분해서 먼저 죄송합니다. 대입 연산자 오버로딩을 하지 않을 경우에, int_array = il; 대입 연산에서 에러가 나길래, 디버그를 해보니까 int_array 의 소멸자가 호출되어서 메모리공간이 그대로 없어지더라고요..그런데 제 개념상으로는 int_array 변수가 main 함수의 local 변수인데, 아직 프로그램이 끝나지않았는데도 왜 소멸자가 호출되는건가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-M 질문드립니다
공유 소스 보기 (acmicpc.net)cin.tie()와 cout.tie, ios_base::sync~ 구문이 시간을 단축시키기 위함인건 알겠는데 어떤 문제에는 cin.tie와 cout.tie 둘다 쓰이는 반면에 이문제에는 cin.tie만 쓰였는데 어떤 차이가 있는지 궁금합니다 질문글 읽어주셔서 감사합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 문제 질문 드립니다!
안녕하세요, 큰돌 선생님!강의 너무 즐겁게 잘 공부하고 있습니다! :) 테스트 케이스 및 몇 가지 더 테스트 넣어봤을 때는 잘 동작하는데, 틀렸다고 나오네요 ㅠㅠ어디서 문제가 있는지 여쭤봐도 괜찮겠습니까?😭메인 로직은,1) 카운팅 배열에 담는다2) 배열을 순회하며 존재하는 문자개수의 1/2만큼 ret에 더한다(이때 홀수 개수인 문자가 2개 이상인 경우 문자열 출력 후 종료)3) 순회 종료 후 홀수 문자와 ret을 뒤집은 temp를 ret에 더한 후 출력한다입니다!!ㅠhttp://boj.kr/e839c8c8845748e0850331f8961d45eb
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
최하위 켜져있는 비트 찾기 질문드립니다!
안녕하세요 ! 최하위 켜져있는 비트 찾기 질문드립니다!20을 예시로 아래와 같이하면 3이 나와야하는거아닌가요..?#include <iostream> using namespace std; int main() { int s = 20; // 10100(20) int idx = (s & -s); cout <<idx; // 4 }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-T 이렇게 풀면 왜 틀릴까요?
http://boj.kr/f28c6d421faf48ecb8e54be17eaf1cd5테케는 통과되는데 ㅎㅎ;;r,s,t 비슷하게 푸는데 다 틀리네요 하하;;
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S 비슷하게 했는데 안되서 질문드립니다
http://boj.kr/c12fb379e72a4bac8f5560898b40d140 안녕하세요 선생님 dfs(i)를 dp[i]로 안받고 바로 내보내면 mx가 1로 고정되어서 나오는데 이렇게 하면 안되나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
테케는 통과하는데 왜 틀렸을까요
#include<iostream>#include<vector>using namespace std;int n,d,p,root,visited[54];vector<int>adj[54];int dfs(int here){ visited[here]=1; int ret=0; if(adj[here].size()==0)return 1; for(int there:adj[here]){ if(visited[there])continue; ret+=dfs(there); } return ret;}int main(){ cin >> n; for(int i=0;i<n;i++){ cin >> p; if(p==-1){ root=i; continue; } adj[p].push_back(i); } cin >> d; if(d==root)cout<<0<<"\n"; else{ visited[d]=1; cout << dfs(root) << "\n"; }}
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
DirectX 3D에 대해 질문이 있습니다
DX 3D를 배우면서 원초적으로 궁금한점이 생겼는데 저희는 지금 Vertex를 표현할때 x, y, z좌표를 사용해 도형을 표현해주는데 x, y 좌표는 모니터의 x, y 픽셀과 대응되기 때문에 자연스럽게 렌더링 시킬수 있다고하지만 z좌표는 도대체 어떻게 렌더링이 되는 건가요? 이건 DX 파이프라인에서 알아서 설정해주는 건가요?입력되는 데이터에 z좌표 하나를 추가로 넣어주는것 외에는 아무것도 하지 않았는데 어떻게 도형이 3D처럼 렝더링시킬 수 있는건가요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
제꺼는 return ret 뒤에 조금 다르게 나옵니다
(포인터 실습. 14분 38초) 비주얼 스튜디오 2022, x86에서 디스어셈블리 확인했습니다 ret.hp = 100;000A245E 8B 45 08 mov eax,dword ptr [ret]000A2461 C7 00 64 00 00 00 mov dword ptr [eax],64h ret.attack = 10;000A2467 8B 45 08 mov eax,dword ptr [ret]000A246A C7 40 04 0A 00 00 00 mov dword ptr [eax+4],0Ah ret.defence = 2;000A2471 8B 45 08 mov eax,dword ptr [ret]000A2474 C7 40 08 02 00 00 00 mov dword ptr [eax+8],2 return ret;000A247B 8B 45 08 mov eax,dword ptr [ret]}000A247E 52 push edx000A247F 8B CD mov ecx,ebp000A2481 50 push eax000A2482 8D 15 A4 24 0A 00 lea edx,ds:[0A24A4h]000A2488 E8 A3 ED FF FF call @_RTC_CheckStackVars@8 (0A1230h)000A248D 58 pop eax000A248E 5A pop edx000A248F 5F pop edi000A2490 5E pop esi000A2491 5B pop ebx000A2492 81 C4 D4 00 00 00 add esp,0D4h000A2498 3B EC cmp ebp,esp000A249A E8 F5 ED FF FF call __RTC_CheckEsp (0A1294h)000A249F 8B E5 mov esp,ebp000A24A1 5D pop ebp000A24A2 C3 ret return ret;000A247B 8B 45 08 mov eax,dword ptr [ret]ret 뒤에 이렇게 한줄 나오고 없어요어떻게 해석해야할까요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-E 재귀함수로 풀기
http://boj.kr/4538dc44889e45e0ba2c3468c92fca3f큰돌님, 안녕하세요!다름이 아니라 재귀함수를 사용하여 문제를 풀었습니다.n의 개수 만큼 인덱스를 추가해주고(vector v에),이 벡터 v를 재귀함수에서 '값에 의한 호출'로 사용합니다. 그러면 재귀함수를 반복할 때마다 선언 및 sort할 필요없이 이 벡터 v를 인수로 넘겨줍니다. 그럼 재귀함수마다 6가지 경우의 수를 검사하게 되고, 시간복잡도를 우려하여 백트래킹을 하기 위해 'if(s + 1 < ret)'을 통해 불필요한 과정은 생략하였습니다.이렇게 하고 제출해보니, 성공이라고 떴습니다. 이 방법도 틀리지는 않은 걸까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3K 메모리초과
https://www.acmicpc.net/source/67173085 강의와 비슷하게 작성도 해보았지만 메모리 초과를 받습니다. 어느 부분을 수정해야 할지 감이 안잡혀서 질문남겨요!.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-L 문제 질문
안녕하세요 큰돌 선생님 좋은강의 감사합니다강의를 보다가 의문점이 드는부분이 있습니다.39.9 0.1 2 를 입력하면 2.000을 출력하는데, 9.9를 출력해야하는것 아닌가요?가장 첫번째 인덱스에 아무것도 곱하지 않은게 클 경우를 체크안하는 로직이 아닌지 궁금합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-I atoi를 쓰지말고 구현하라는 문제군요
네...(?)
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
c++ 변수와 Shader 변수와의 상호작용
강사님 강의 정말 잘 듣고있는 도중 질문이 생겼습니다.보시는바와같이 Shader스크립트에서 전역변수를 선언하고 C++에서 만들어준 변수를 알맞게 매핑하여 잘 사용하는 모습을 보았는데요 여기서 질문이 있습니다.바로 저 Shader스크립트에 선언된 변수와 C++스크립트에 선언된 변수가 매핑되는 과정 입니다.C++에서 선언해주는 ShaderResourceView(Texture) 같은건 처음 선언할시 VRAM 내부에 Texture의 비트값이 복사가되고 ShaderResourceView라는 아이가 그 VRAM내부에 선언된 Texture의 주소를 Shader스크립트의 Texture2D라는 아이에게 전달해준다고 생각하고있었는데 그렇다면 그 위에 선언해준 Matrix같은 경우 c++에서 처음 선언할때도 VRAM이 아닌 RAM에 생성되는데 그렇다면 Shader의 Matrix와 C++의 Matrix는 Texture처럼 주소값만 전달해주는게 아니라 완전히 복사해주는건가 두 가지 과정이 다른건가 아니면 제가 어느 한쪽을 잘못 알고 있는건가 해서 질문드립니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
x84, x64 스택 메모리
스택이 높은 주소 에서 낮은 주소로 값이 저장 되는 것으로 알고 있었는데 x64 에서는 스택 메모리의 저장 방법이 다른건가요? x64로 실행했을 경우 메모리 까보면 낮은 주소에서 높은 주소 순서대로 저장되는 걸로 보이네요