inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

[3:25] 함수 오버로딩 더미 변수

해결됨

홍정모의 따라하며 배우는 C++

operator ++ 를 오버로딩하는 구문이 두 군데가 있어서, ambiguity가 발생하기 때문에, 이를 구분하고자 dummy parameter, int를 넣은 것이다, 정도로 이해하였습니다. 그럼 실제 main 함수에서, 컴파일러는 어떻게 d++ 이 postfix overloading(line 19 ~ 24)에 해당하는지 알아낼 수 있나요? 반대로 ++d가 line 19 ~ 24로 가는 것이 아니고, line 12 ~ 16으로 가야 하는지 어떻게 알아내나요?

  • c++
JKang 댓글 1 좋아요 2 조회수 300

1-L 질문입니다.

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요. 저는 set을 사용해서 문제를 해결했습니다. 그런데 시간을 더 줄여보려고 코드를 수정했는데 틀리다고 나옵니다. 수정한 코드가 왜 잘못되었는지 모르겠습니다. 알려주시면 감사하겠습니다. 수정한 코드 http://boj.kr/e812a45ff3e34a8e9a22e97cce7e113f 원래 코드 http://boj.kr/039878b27e594e0c90895f1414ab061d

  • c++
  • 코딩-테스트
gytharj 댓글 1 좋아요 0 조회수 219

1-K 팰린드롬 만들기 반례를 찾지 못하겠습니다.

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요. 강의 잘 수강하고 있습니다. 해설 강의 보기 전에 문제를 먼저 풀어봤는데 계속 틀렸다고 나옵니다. 반례를 찾지 못하겠습니다. 일단 제가 생각하기엔 알고리즘이 맞는 것 같고 해설 강의와도 사실상 똑같은 알고리즘입니다. 저는 홀수인 경우 짝수인 경우만 나눠서 짰는데 기본적인 원리는 똑같네요. 웬만한 반례를 찾아 돌려봐도 제대로 나오는데 백준은 자꾸 틀렸다고 하네요. http://boj.kr/c698570bbcae4b859fbfdf13b4fac684 뭐가 문제인지 모르겠습니다.

  • c++
  • 코딩-테스트
gytharj 댓글 1 좋아요 0 조회수 366

3.8 비트단위 연산자

미해결

홍정모의 따라하며 배우는 C++

안녕하세요. 비트단위 연산자를 공부하던 중 궁금한 점이 생겼습니다. 왜 컴파일 했을 시, bitset<4>(0110 >> 2)가 0001이 아닌 0010이 나오는지 모르겠습니다. 알려주시면 정말 감사하겠습니다. #include <iostream> #include <bitset> using namespace std; int main() { cout << bitset<4>(0110 >> 2) << endl; }

  • c++
김민진 댓글 1 좋아요 1 조회수 305

IOCP iocpHandle

해결됨

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

// CP 생성 HANDLE iocpHandle = ::CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 0); // WorkerThreads for (int32 i = 0; i < 5; i++) GThreadManager->Launch([=]() { WorkerThreadMain(iocpHandle); }); 각 워커 스레드는 별도의 iocpHandle을 사용해서 WorkerThreeadMain 함수를 실행하는 걸까요? iocpHandle 은 하나의 공용적인 큐 일까요?

  • c++
  • 네트워크
  • ue-blueprint
  • 게임수학
  • windows-api
로켓라쿤 댓글 1 좋아요 0 조회수 293

3.4 조건 연산자 우선순위

미해결

홍정모의 따라하며 배우는 C++

#include <iostream> using namespace std; int main() { int x = 5; cout << (x % 2 == 0) ? "even" : "odd" << endl; } 안녕하세요. (x % 2 == 0) ? "even" : "odd"로 쓰면 컴파일 오류가 나는데, 이를 해결하려면 ((x % 2 == 0) ? "even" : "odd") 이렇게 괄호로 한 번 더 묶으면 된다고 하셨습니다. 연산자 우선순위 때문에 오류가 나는 거라고 하셨는데, 어떤 연산자들끼리 우선순위가 충돌하는 건지 궁금합니다.

  • c++
김민진 댓글 1 좋아요 1 조회수 298

Overlapped Callback - Session 구조체

해결됨

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

Overlapped Callback 방식에서 Session 구조체의 맨 첫 요소로 overlapped 를 넣어줘야하는 이유가 나중에 포인터로 변환하기 위해 메모리 구조상 넣는 거라고 하셨는데 이 부분이 잘 이해가 안가서 여쭤봅니다... 배열의 이름이 배열의 주소인 것처럼 구조체의 첫 요소가 구조체의 주소라서 그런건가요..??

  • c++
  • 네트워크
  • ue-blueprint
  • 게임수학
  • windows-api
로켓라쿤 댓글 1 좋아요 0 조회수 302

2-B 맞왜틀???

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

테스트 케이스는 다 맞고 코드도 틀린부분이 어딘지 모르겠습니다 ㅠㅠ #include <iostream> #include<string.h> using namespace std; const int MAX = 51; const int dy[4] = { -1,1,0,0 }; const int dx[4] = { 0,0,-1,1 }; int T, N, M, K, cnt; int adj[MAX][MAX]; bool visited[MAX][MAX]; void dfs(int y, int x) { visited[y][x] = true; for (int i = 0; i < 4; i++) { int ny = y + dy[i]; int nx = x + dx[i]; if (ny < 0 || ny >= N || nx < 0 || ny >= M) continue; if (adj[ny][nx] == 0) continue; if (visited[ny][nx]) continue; dfs(ny, nx); } return; } int main() { cin >> T; for (int i = 0; i < T; i++) { cin >> M >> N >> K; cnt = 0; memset(visited, false, sizeof(visited)); memset(adj, 0, sizeof(adj)); for (int j = 0; j < K; j++) { int y, x; cin >> x >> y; adj[y][x] = 1; } for (int y = 0; y < N; y++) for (int x = 0; x < M; x++) { if (visited[y][x]) continue; if (adj[y][x] == 1) { dfs(y, x); cnt++; } } cout << cnt << '\n'; } return 0; }

  • c++
  • 코딩-테스트
요가인 댓글 1 좋아요 0 조회수 266

6-D 시간복잡도 관련 질문입니다

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 선생님 수업 듣는 중에 의문점이 생겨서 질문드립니다. 6-D(7795) 번 문제 같은 경우에는 입력값의 범위가 1~20000까지로 완전 탐색으로 풀게 된다면 n^2의 시간복잡도를 가져 시간 초과가 날 줄 알았습니다. 하지만 그렇게 풀어보니 시간 초과가 나지 않고 정상적으로 통과가 되네요 어떤 이유 때문인지 궁금합니다! #include<bits/stdc++.h> using namespace std; int T, N, M, num; vector<int> A; vector<int> B; int main() { cin >> T; while (T--) { cin >> N >> M; A = vector<int>(N); B = vector<int>(M); for (int i = 0; i < N; i++) cin >> A[i]; for (int i = 0; i < M; i++) cin >> B[i]; sort(A.begin(), A.end()); sort(B.begin(), B.end()); int cnt = 0; for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { if (A[i] > B[j]) { cnt++; } else break; } } cout << cnt << "\n"; } return 0; }

  • c++
  • 코딩-테스트
조태 댓글 1 좋아요 0 조회수 241

경우의 수 질문드립니다.

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 큰돌님 코드 질문은 아니고 경우의 수 질문인데요 x, head1, head2 -> 3가지 x, eye -> 2가지 x, patns1, pant2 -> 3가지 아무것도 입지않는 경우의 수 1을 빼주는 것이 알몸인 상태인 경우를 빼주는 것이니 무조건 위의 경우에도 무조건 1만 빼줘서 3 x 2 x 3 -1 = 11 로 생각하는게 맞는건가요? 듣다보니 헷갈려서 질문 드려봅니다

  • c++
  • 코딩-테스트
권석기 댓글 2 좋아요 0 조회수 246

반례 궁금합니다.

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

http://boj.kr/4dc8f27d6a09443a916061fc1ac7800c 반례가 궁금합니다. dfs와 비트마스킹을 함께 사용해서 구현했고 테스트케이스 및 질문게시판의 반례도 다 통과했습니다만 1%대에서 바로 오답이 나옵니다. p.s. 비트마스킹 챕터에 있는 문제라 비트마스킹을 써봤는데, 굳이 이런 문제에 비트마스킹을 쓸 필요가 없었을까요? 앞으로 코테를 풀 때 메모리가 부족할 만큼 수의 범위가 크면 비트마스킹만 쓰면 될까요? 이 문제도 노드가 최대 1000개에 엣지가 1000000개 까지 가능하니 비트마스킹을 써야겠다고 생각습니다.

  • c++
  • 코딩-테스트
Maruche 댓글 2 좋아요 0 조회수 289

Xcode 빌드시스템 에서 빌드가 잘 되지 않는 문제가 있습니다.

해결됨

삼각형의 실전! CMake 초급

여러가지 조사를 해봤지만 해결되는것이 없어서 도움을 요청해봅니다.. 일단 Xcode는 설치가 되어 있고, Xcode 버젼은 다음과 같습니다. xcode-select -p > /Applications/Xcode.app/Contents/Developer xcodebuild -version Xcode 15.0.1 Build version 15A507 작업 위치는 외장 디스크를 터미널로 접근해서 작업을 했습니다. ShellScript 로 CMake 세팅을 했고요 bash ~/CMakeInitTemplate.sh Phello-cmake 를 실행하면 #!/bin/bash # 명령어 결과물을 변수로 나타내기 CurPath=$(pwd) ProjectName="$1" # 현재 주소를 사용해서 concatenate하기 if [ -z "$ProjectName" ]; then echo "Type ProjectName by argument" echo "Like bash ~/CMakeInitTemplate [ProjectName]" exit 0 fi mkdir "${ProjectName}" cd "${ProjectName}" || exit # 파일이 있는지 없는지 확인하기 # https://co-no.tistory.com/109 # if [ -e "$FILE" ]; then # echo "File Exists" # else # echo "No Matching FIle" # fi # 파일 쓰기 # https://stackoverflow.com/questions/11162406/open-and-write-data-to-text-file-using-bash Create_CMakeLists_Text() { touch CMakeLists.txt echo "# 최소 CMkae버젼 요구사항 명시 cmake_minimum_required(VERSION 3.0.0) # 프로젝트 이름 지정 project(${ProjectName}) # 타겟 프로그램 정의 add_executable(${ProjectName} src/main.cpp) # 조건문 if(BUILD_TESTING) # 메세지 출력 message('Hello Test') endif()" >> CMakeLists.txt } # 인프런 삼각형 GNU 폴더 구조 Set_CMake_FolderStructure() { mkdir bin # 1. 동적 라이브러리와 실행파일 : bin mkdir data # 2. 데이터와 에셋 : data mkdir demo # 3. 데모 : demo mkdir doc # 4. 문서 : doc mkdir include # 5. 헤더파일 : include mkdir lib # 6. 라이브러리 : lib mkdir src # 7. 소스파일 : src touch src/main.cpp mkdir test # 8. 테스트 : test } Create_CMakeLists_Text Set_CMake_FolderStructure cd ../ CMakeLits.txt 는 처음에 다음과 같이 실습을 따라했습니다. 다만, 저만의 프로젝트 이름을 설정하기위해 "Phello-cmake"로 이름을 지었구요. # 최소 CMkae버젼 요구사항 명시 cmake_minimum_required(VERSION 3.0.0...3.27.7) # 프로젝트 이름 지정 project(Phello-cmake) # 타겟 프로그램 정의 add_executable(Phello-cmake src/main.cpp) # 조건문 if(BUILD_TESTING) # 메세지 출력 message('Hello Test') endif() cmake -G "Unix Makefiles" -B build-make 와 같이 Makefiles를 빌드시스템을 명시하고 빌드할때는 문제가 없이 build-make 파일이 잘 생깁니다. 다만, cmake -G "Xcode" -B build-xcode 실행할때 다음과 같은 cmake -G "Xcode" -B build-xcode -- The C compiler identification is unknown -- The CXX compiler identification is unknown CMake Error at CMakeLists.txt:6 (project): No CMAKE_C_COMPILER could be found. CMake Error at CMakeLists.txt:6 (project): No CMAKE_CXX_COMPILER could be found. -- Configuring incomplete, errors occurred! 이 에러를 봤을때, 컴파일러를 명시하면 되겠다 생각하고 다음과 같이 컴파일러를 명시했습니다. # 최소 CMkae버젼 요구사항 명시 cmake_minimum_required(VERSION 3.0.0...3.27.7) # set(CMAKE_C_COMPILER /usr/bin/clang) set(CMAKE_CXX_COMPILER /usr/bin/clang++) # 프로젝트 이름 지정 project(Phello-cmake) # 타겟 프로그램 정의 add_executable(Phello-cmake src/main.cpp) # 조건문 if(BUILD_TESTING) # 메세지 출력 message('Hello Test') endif() 그러나 다음과 같이 Check for working C compiler: /usr/bin/clang - broken The C compiler "/usr/bin/clang" is not able to compile a simple test program. 과 같은 이유로 실습진행이 막혔습니다. cmake -G "Xcode" -B build-xcode -- The C compiler identification is unknown -- The CXX compiler identification is unknown -- Detecting C compiler ABI info -- Detecting C compiler ABI info - failed -- Check for working C compiler: /usr/bin/clang -- Check for working C compiler: /usr/bin/clang - broken CMake Error at /opt/homebrew/Cellar/cmake/3.27.7/share/cmake/Modules/CMakeTestCCompiler.cmake:67 (message): The C compiler "/usr/bin/clang" is not able to compile a simple test program. It fails with the following output: Change Dir: '/Volumes/Transcend/개발 자료/Markdown/SelfStudy/Doc/Cpp/CMake/실습/Phello-cmake/build-xcode/CMakeFiles/CMakeScratch/TryCompile-Qo6pMj' Run Build Command(s): /usr/bin/xcodebuild -project CMAKE_TRY_COMPILE.xcodeproj build -target cmTC_2733e -parallelizeTargets -configuration Debug -hideShellScriptEnvironment Command line invocation: /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -project CMAKE_TRY_COMPILE.xcodeproj build -target cmTC_2733e -parallelizeTargets -configuration Debug -hideShellScriptEnvironment User defaults from command line: HideShellScriptEnvironment = YES IDEPackageSupportUseBuiltinSCM = YES 2023-10-27 13:21:07.547 xcodebuild[8028:99890] Writing error result bundle to /var/folders/yc/p3zthqjj70b5_p976b68c9rr0000gn/T/ResultBundle_2023-27-10_13-21-0007.xcresult xcodebuild: error: 'CMAKE_TRY_COMPILE.xcodeproj' does not exist. CMake will not be able to correctly generate this project. Call Stack (most recent call first): CMakeLists.txt:10 (project) 그래서 두번쨰로 환경변수를 설정했습니다. /* ~/.zshrc */ : export CC=/usr/bin/clang export CXX=/usr/bin/clang++ autoload -Uz compinit && compinit bindkey '^I' complete-word zstyle -e ':completion:*' command-path 'reply=( "$PWD/bin" "$path[@]" )' typeset -U PATH path : 그럼에도 여전히 빌드가 되지 않고, 마지막으로 Xcode SDK 경로 설정까지 해 /* ~/.zshrc */ export SDKROOT=$(xcrun --sdk macosx --show-sdk-path) 추가를 해봤지만 작동이 되지 않았습니다.. 어떻게 해야 해결이 될지 알려주실 수 있을까요? ㅠㅠ

  • c++
  • cmake
  • vcpkg
DogGuyMan 댓글 1 좋아요 0 조회수 1310

8-B 문제 질문

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 큰돌선생님 매번 좋은 강의 감사합니다.. 문제를 풀다가 못풀어서 선생님 코드를 보고 강의를 시청하였는데요, rpg함수는 dp배열을 갱신하는 재귀함수인데 기저사례가 없는 이유가 궁금합니다. 아직 제가 코드를 완전히 이해하지 못하는것 같은데, 제 생각으로는 선생님코드 for(int p = 0; p <= pnt; p++){ int nextSTR = min(1000, STR + p); int nextINT = min(1000, INT + pnt - p); ret = max(ret, rpg(nextSTR, nextINT)); } 이 부분에서 pnt가 0이더라도 계속 rpg() 함수를 호출할것 같은데 제가 어느부분을 이해하지 못하는 건가요??

  • c++
  • 코딩-테스트
이명운 댓글 2 좋아요 0 조회수 240

6-j 범위체크 조건 질문드립니다

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

https://www.acmicpc.net/source/share/c705165d9da648cab807897686bcb320 논리로직은 이해를 한거같은데 아직도 이분탐색에서 left와 right를 체크하는부분에서 mid값을 걸러내는부분이 잘 이해가가지않네요 right에서 mid값을 가지고오나 left를 체크할떄 가지고오나 결과는 같을거라고 생각했는데 아직도 이부분이 잘 이해가가지않습니다 ㅜㅜ

  • c++
  • 코딩-테스트
이선용 댓글 2 좋아요 0 조회수 200

winapi object2 강의중에

미해결

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

안녕하세요 objectmanger 에서 벡터를 참조가아닌 복사방식으로 가져와서 반복문을 돌며 업데이트를 시켜주면 문제가되지않는것 까진 이해가 됩니다 근데 render 할때는 복사방식아닌 참조로 가져오는데 , 즉 원본을 가져와서 렌더링을 해주는데 업데이트부분에서 스페이스바를 눌러 미사일을 추가하게되면 , 미사일 객체가 원본벡터안에 추가되어 들어가게 되어 렌더링할때도 영향을 받을거같은데 어째서 렌더링의 반복문 루프에는 참조값으로 받아와도 문제가없는지 궁금합니다

  • c++
  • 네트워크
  • ue-blueprint
  • 게임수학
  • windows-api
pakheae 댓글 1 좋아요 0 조회수 250

스마트포인터와 벡터와의 함께사용 ?

미해결

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

vector<shared_ptr<object>> v; 라는것을 사용했을때 , shared_ptr 은 생명주기가 다하면 알아서 자동으로 소멸되는데 vector 안에 object 를 넣게되면은 object 의 생명주기 가 연장되는건가요 ? 만약에 생명주기가 연장되었다고 했을때 vector<shared_ptr<Object>>& v = ObjectManager::GetInstance()->Get_Object(); for (int i = 0; i < v.size(); ++i) { v[i]->Update(); } 위처럼 벡터의 참조값을 를 가져와서 update 도중 vector 안에 원소를 reset 하여 참조카운트가 0 이되어 삭제된다 치면은 썡포인터와 다를게없어지는거아닌가욤?

  • c++
  • 네트워크
  • ue-blueprint
  • 게임수학
  • windows-api
pakheae 댓글 1 좋아요 0 조회수 317

반례에 대해서 질문드립니다

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

제가 작성한 코드 http://boj.kr/7e8f78a1feb2433fa70b2a847a23cfff 첫 번째 질문 제가 작성한 코드는 반례처리를 하지 않았는데 통과됐습니다. 이 문제는 시작점과 도착점이 같은 경우에도 반례처리가 필요하지 않은 문제 아닌가요? 두 번째 질문 방문하지 않은 정점을 방문할 때, cnt[there] += cnt[here] 인 이유가 무엇인가요? 저는 cnt[there] = cnt[here] 라고 생각합니다.

  • c++
  • 코딩-테스트
neo2 댓글 1 좋아요 0 조회수 271

온라인게임 제작 파트를 공부 중 궁금한 것이 있습니다.

미해결

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

제가 이해하기론 서버에서 플레이어를 생성하고 처음 네트워크 통신 간 세션에 클라이언트가 등록되었을 때 클라이언트와 서버에서 생성한 플레이어를 붙이는 것으로 이해했습니다. 혹시 그럼 처음 통신을 했을 때는 클라이언트가 서버에 보내는 패킷에 초기값을 전달 후 서버에서 설정해서 다시 패킷을 send 해주는 방식으로 이해했는데 제가 이해한 방식이 맞는 것인지 궁금합니다.

  • c++
  • 네트워크
  • ue-blueprint
  • 게임수학
  • windows-api
sejin6849 댓글 1 좋아요 0 조회수 300

6-J 질문 드립니다.

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

#include<iostream> #include<algorithm> #include<stack> using namespace std; typedef long long ll; ll n, m, ans, last_su; ll a[10004]; int check(ll mid){ ll cnt =0; for(int i=0; i<m; i++){ cnt += mid / a[i] + 1; } return cnt >= n; } ll last_check(){ ll cnt=0; for(int i=0; i<m; i++){ cnt += (ans-1) / a[i] + 1; } return n - cnt; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n >> m; for(int i=0; i<m; i++){ cin >> a[i]; } // 이 부분 ll l=0, r=6*1e10+4; while(l <= r){ ll mid = (l+r)/2; if(check(mid)){ r = mid-1; ans = mid; } else{ l = mid+1; } } if(ans){ last_su = last_check(); }else{ cout << n << '\n'; return 0; } vector<ll> v; for(int i=0; i<m; i++){ if(ans % a[i] == 0){ v.push_back(i+1); } } cout << v[last_su-1] << '\n'; } 다른 부분은 아니고 위의 코드를 제출 했을 때 정상적으로 맞았다고 나오는데, 시험삼아 while(l<=r) 위의 줄에서, 이분탐새하기 직전 l과 r을 선언하는 줄에서 r = 1e18로 정의하였을 때 오답이 나옵니다. 1e18도 long long의 범위 이내인데 어째서 오답이 나오는지 모르겠습니다.

  • c++
  • 코딩-테스트
토모시키 댓글 1 좋아요 1 조회수 230

사전에 들어야 할 강의

미해결

[게임 프로그래머 도약반] DirectX11 입문

강의마다 계속 "WinAPI 강의에서 배웠다" 라고 말씀을 하시면서 진행을 하시는데, 혹시 해당 강의 보기전에 WinAPI 강의를 사전에 봐야했던건가요 ?

  • c++
  • directx
댓글 1 좋아요 0 조회수 442

인기 태그

인프런 TOP Writers

주간 인기글