묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
비트마스킹
큰돌님 비트마스킹을 공부하면서 계속해서 드는 생각이라 질문해요. 생각해보면 비트마스킹으로 구현할 수 있는 것들은 재귀함수를 이용한 완전탐색으로 전부 풀 수 있다고 생각해요. 물론 비트마스킹을 이용하면 메모리나 CPU 연산 측면에서 조금 더 빠르긴 하겠지만, 문제를 푸는데 있어서 막 체감이 큰 느낌은 아닌 거 같아요. 그래서 비트마스킹을 문제를 조금 더 다양하게 풀 수 있다 정도로 생각하고 있는데, 이정도로 받아들여도 될까요? 아니면 제가 놓친 부분이 있을까요? 물론 다양하게 생각하는 게 좋은거지만 직접적으로 큰 영향력 있는 이론은 아닌 거 같아서 질문합니다.
-
미해결홍정모의 따라하며 배우는 C++
생성자에서 throw처리가 되었을 때 질문입니다.
객체의 인스턴스화, instantiation 중 예외처리가 발생하게 되면 해당 객체의 소멸에 대해 잘 이해하고 있는게 맞는지 질문 남깁니다.와 같이 작성 되었다고 했을 때B *b = new B(0); 를 통해 B타입의 객체 instantiationnew B를 통해서 컴파일러가 힙 메모리에 B객체의 크기만큼 메모리를 확보 ->확보받은 메모리 내 멤버변수 정보 초기화를 위해서 B 객체 생성자 진입 ->진입 직전 파생클래스인 것 확인 -> 부모 initialization_list 실행 ->부모 생성자 호출 -> 자식 initialization_list 실행 -> 자식 생성자 호출위 순서에 의해 객체가 생성되는걸로 아는데, 부모 생성자에서 throw를 하여 StackUnwinding을 하면 예외처리에 의해 객체 생성을 완료하지 못하게 되고, 할당 받은 메모리의 위치(힙, 스택)에 상관없이 컴파일러가 소멸처리를 진행한다.이때, A, B 둘다 생성자 호출 중에 Instancing이 완료되지 못했으므로 소멸자 호출에 의한 객체 소멸이 이루어지지 않는다. 과 같이 A 클래스에 파생클래스가 아닌 C객체를 가지고 있고 예외처리를 자식 클래스 B에게 두면?A의 생성자는 호출이 완료되었고, B의 생성자에서 호출 시 예외처리가 발생한 것이므로"생성이 완료"된 부모객체와, 부모가 가지고있는 C객체는 "소멸자 호출"에 의해 처리된다.B의 경우 생성 도중 예외처리가 발생하였으니 컴파일러가 소멸 시켜준다.하지만 일반함수 Stack Unwinding에서도 똑같이 함수 StackFrame 내 에서 이루어진 동적할당에 대한 소멸 책임은 프로그래머에게 있다. B객체의 catch()에서 delete[] 가 없을 시 메모리 누수가 발생한다. 로 강의 해주신것을 전반으로 이것저것 시도해보며 정리 해보았습니다.Q) 요약 하자면 생성이 완료된 부모 객체부분, 멤버변수 객체는 당연히 각자의 소멸자 호출에 의해 소멸이 될것이고, 생성자 호출 도중 예외처리 된 객체 부분은 "취소"처리로 보며 스택, 힙에 할당되었든 취소된 부분은 컴파일러가 처리해준다. 가 맞을까요?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
섹션4 배열실습 질문입니다.
배열을 통해 콘솔에 5x5 맵을 표현하는 부분에서 while (true) {HANDLE output = ::GetStdHandle(STD_OUTPUT_HANDLE);COORD pos = { 0, 0 };::SetConsoleCursorPosition(output, pos); for (int y = 0; y < MAP_SIZE; y++) { for (int x = 0; x < MAP_SIZE; x++) { switch (GMap2D[y][x]) { case 0: cout << " □ "; break; case 1: cout << " ■ "; break; case 2: cout << " ● "; break; } } cout << endl; } }위와 같이 메인에 함수에 축약해서 코드를 짜놓았습니다. (실제로 헤더와 추가 cpp에서 도는것을 질문하기 쉽게 축약한것이라 실제 구동에는 차이가 없는것 같습니다.)위 코드에서 궁금한 부분이 2가지 생겼습니다.위 부분에서 while true로 돌고 있는데 무엇때문에 한번만 출력되는지 궁금합니다.위 코드를 작성하게 되면 다른 코드를 작성했을 때 콘솔창에 나타나는 "~~~~ 코드와 함게 종료되었습니다.... ~~~ 이 창을 닫으려면 아무 키나 누르세요.." 와 같은 프로그램의 끝을 알리는 자동 구문도 안뜨더군요.위 두 가지가 궁금합니다.
-
미해결홍정모의 따라하며 배우는 C++
4:00 질문 드립니다
연산자 오버로딩 비정적 멤버 참조는 특정 개체에 상대적이어야 한다는데 그럼 접두사를 point.으로 접근 해야지 오류가 풀리는 것인데 왜 강의에서는 out<<m_x 이 형태로 작성하는데도 오류가 일어나지 않는 건지 궁금합니다.
-
해결됨실전! 언리얼 소울라이크 개발: A to Z
CombatComponent, Weapon 참조
혹시 CombatComponent랑 Weapon클래스에서처럼 서로 참조하고 있는 구조가 현업에서도 많이 활용되고 있는지 궁금합니다.원래 많이 사용되는지 아님 최대한 줄여야하는 건지 아님 적당한 선에서는 사용해도 무방한지..?!감이 오지 않습니다,,
-
해결됨실전! 언리얼 소울라이크 개발: A to Z
TObjectPtr 사용처
안녕하세요!! 덕분에 좋은 강의 너무 잘 듣고 있습니다. 감사합니다 (_ _)혹시 TObjectPtr을 사용하신다면..?! 언제 사용하실지 문득 궁금해서 질문 남겨봅니다!!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-C 질문 있습니다 강사님.
안녕하세요 강사님, 강의 듣기 전 혼자서 풀어보았는데요.https://www.acmicpc.net/source/share/8f9582112fc04858be9fdaf7e4097c85처음 문제를 접근할 때 100까지 높이가 들어와도, 입력 예시와 같이 최대 높이가 9가 될 수 있기 때문에 소요 시간을 줄이고자 while(최대 높이 --) 와 같이 로직을 구성하였는데요,강의 시청 후 강사님 코드를 제출해보면 제 코드와 동일하게 소요 시간은 20ms 임을 확인하였습니다. 높이의 모든 경우의 수에 대해 재귀 함수를 호출해가며 체크하게 되면 시간 초과가 발생할것이라 예상했고 시간 초과가 나지는 않아도 더 오래 걸릴것이라고 생각했는데 실제로 소요되는 시간은 동일해서 어떻게 동일한지 궁금하여 질문 남깁니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질투심 4도 조건 위배는 아니지 않나요
질투심 4면 최솟값이 아니어서 답이 아닌것이지, 조건 위배는 안되지 않나요레드 4, 블루 4, 블루 3, 나머지 두명은 못받음도 나눠줄 수 있지는 않나요
-
해결됨Windows System 프로그래밍
C++ 강의 계획이 있으신지 궁금합니다
안녕하세요 영천님! 항상 좋은 강의 감사드립니다.유튜브랑 인프런에서 지속적으로 강의 시청중에 있는데, 아직 제가 부족한 부분이 많아서 혹시 C++ 강의도 계획에 있으신지 궁금합니다! 만약 없으시다면 혹시 추천해주실 강의나 자료가 있으신지도 궁금합니다 ㅠㅠ
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
map #1 8분 58초 맵은 레드블랙트리로 이루어진 것 같습니다.
루키스님 안녕하세요?CS 공부 정리하던 중에 필기 보다가 잘못된 부분이 있는 것 같아 질문 드리게 되었습니다. map #1 8분 58초'맵은 AVL 자료구조로 이루어져있다'고 설명해주셨는데공식 문서에 따르면 맵은 레드블랙트리로 이루어진 것 같은데 강의가 잘못된 것이 맞을까요?레퍼런스https://en.cppreference.com/w/cpp/container/map레퍼런스 중 스샷
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-B 로직이 어디가 틀렸는지 잘 모르겠습니다...
http://boj.kr/36465016d681417da63a8f5583fe7b79안녕하세요 강사님. 강의 잘 듣고 있습니다! 메인 로직은 강사님과 비슷하다고 생각하는데, 어디가 틀렸는지 잘 안보입니다...!l: 음악 길이 중 가장 큰 값, r: 음악 길이의 합while(l <= r) 안에서 sum+arr[i]가 mid보다 크면 cnt++, sum = arr[i] 이렇게 처리해도 될 것 같은데, 제가 잘못 생각한 부분이 있을까요?
-
미해결홍정모의 따라하며 배우는 C++
inline 키워드에 대한 질문입니다.
inline 함수 정의부를 복사하여 호출부에 삽입하는 최적화를 부탁하는 역할 - 컴파일러에게 요청동일한 헤더파일을 포함하는 복수의 .cpp파일이 링커에 의해 파일이 합쳐질때 함수의 중복 정의를 피하기 위한 역할 - 링커에게 요청으로 2가지가 있는걸로 알고 있습니다.헤더파일의 클래스 정의부에서 함수 선언과 정의가 이루어지면 암시적으로 inline키워드가 붙느걸로 알고있는데요. 이 경우에는 2번의 역할때문에 붙여지는걸로 압니다.그런데 해당 inline키워드를 컴파일시점에서 최적화 할 것으로 해석해도 객체의 함수를 호출할 때 해당 클래스의 함수테이블을 참조하여 호출하기 때문에 컴파일 시점에 최적화가 이루어져도 함수 테이블 등록 시점에는 결국 일반함수화가 될거라고 이해했는데요.하지만, 멤버 함수가 1번의 역할을 수행하여 실제 최적화도 이루어진다. 라고 하길래.... 그렇다면 1번의 역할을 수행하려면 정적인 객체, 컴파일 시점에 자료형이 확정되는 객체여야 하나? 라는 생각도 듭니다.공식 문서를 찾아봐도 명쾌한 답변이 없어서 질문글 남깁니다. 시점에 따라 다른지, 컴파일러 기분에 따라 다른지.... 많이 헷갈리네요ㅜ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-O
문제에서 최대/최소값을 구할 때 결과를 담아 둘 변수에 최대값을 구할 땐 최소값을 저장하고, 최소값을 구할 땐 최대값을 저장해 모든 경우에 대해 업데이트합니다. 그래서 ret에 값을 저장해둬야합니다. 이런 상황에서 다소 귀찮더라도 저는 항상 문제 입력값을 기반으로 최대, 최소값을 구해서 저장하는 편입니다. 근데 큰돌님 영상을 보면 항상 최대 최소를 987654321, -987654321로 넣으시던데 별 생각 없이 그냥 이렇게 저장하고 문제 풀어도 문제가 없는건가요? 없다면 왜 그런건가요? int의 최대 최소값인 20억도 아니고 987654321로도 되는 이유가 궁금하네요
-
해결됨CUDA 프로그래밍 (1) - C/C++/GPU 병렬 컴퓨팅 - CUDA 커널 kernel
식별자 threadIdx 정의 되지 않음 오류
- 출장이 잦아서, 답변에 시간이 좀 걸릴 수도 있습니다. 양해 바랍니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 선생님 강의를 최대한 따라 해보았는데 실행은 잘되고 cuda success까지 잘 나오는데 오류랑 경고가 없어지지 않아 질문 남기게 되었습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
바텀업 방식을 연습해야 할까요?
dp를 어려워하다 강사님의 완전탐색 + 메모지에이션으로 탑다운으로 푸니 감이 잡혔습니다.바텀업은 바로 논리적인 점화식을 떠올릴 수 있어야 하는데 이 부분이 너무 어렵더라구요. 질문드립니다.dp를 모두 탑다운 (완전탐색 + 메모지에이션)으로만 연습해도 되는걸까요 바텀업은 너무 잘 안떠올려집니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-J 질문있습니다
안녕하세요 강사님2-J 문제에 대해서 조금 다른 방법으로도 풀어보았는데(http://boj.kr/ec5ccf849a484544b063b11fa55da87f) 다른 풀이들 둘러보니 거의 대부분 2차원 배열과 bfs를 이용한 풀이가 주를 이루고 있어서혹시 제가 한 방법이 비효율적인 방법이라거나 다른 이슈가 존재 하는지노파심에 궁금하여 질문 남깁니다! 퀄리티 높은 강의와 지속적인 피드백 늘 감사드립니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
완탐 3-E 시간초과 관련 질문입니다.
https://www.acmicpc.net/source/93603480메모리 초과 날 수 있는 게 아무래도 정점을 6개씩 계속해서 넣다 보니까 queue에서 나는 거 같은데.. 막상 큰돌님 코드와도 큰 차이가 없는 거 같고.. 어떤 부분이 잘못돼서 메모리 초과가 났는지 궁금해요.
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
섹션3 '파일분할' 강의 질문입니다.
Helper.h 헤더파일에서 void Test, void Test2 는선언만 하고 Helper.cpp에서 초기화 한 뒤GameCoding.cpp 메인에서 바로 사용이 가능했는데,int GTest 는 왜 extern을 붙여줘야하는건가요?? 실험해보니 extern 안붙여주니 사용이 안되던데 함수형과 변수형에서 차이가 나는건가요?
-
미해결Windows Debugging Tips
windbg ifeo 관련 질문
안녕하세요 마이크로소프트 스토어에서 다운로드되어지는 windbg는 ifeo로 실행이 불가능한가요??C:\Program Files\WindowsApps 에 설치되는 것 같은데 권한때문에 registry에 등록하기가 어렵네요 이전 버전의 windbg는 ui때문에 불편해서... 혹시 방법이 있는지 궁금합니다! 감사합니다.
-
미해결[Rookiss University] UE5 Lyra 클론 코딩 (Haker&Liu)
인코딩 관련
현재 설정이 UTF-8로 되어있는데 소스코드 최초 실행시 주석이 다 깨져서 나와서 무슨 문제인지 모르겠네요 ㅠ