묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-A 치킨집과 집과의 거리 계산 로직 문의
안녕하세요. 강사님,강사님의 코딩테스트 강의 열심히 듣고 있습니다. 오늘 문제는 다소 어렵네요..치킨집과 집 과의 거리 계산 로직이 home 리스트 순서와 chicken 리스트 순서대로 구하던데, 순차적으로 index를 부여받아서 순차적으로 dist 구하면 되는건가요?? for(pair<int, int> home : _home){ int _min = 987654321; for(int ch : cList){ int _dist = abs(home.first - chicken[ch].first) + abs(home.second - chicken[ch].second); min = min(min, _dist); }저는 거리 계산도 bfs로 풀어야 하는줄 알았는데, 어떤 조건일 때 bfs로 안풀어도 되는지 궁금해요
-
미해결[게임 프로그래머 도약반] DirectX11 입문
비쥬얼스튜디오에서 디버그할땐 실행되는대 exe파일로는 실행이안되요
1.실행파일로 시작했을때 오류2.비쥬얼스튜디오에서 디버그 했을때 모습제가 잘못한건지 보려고 선생님 프레임워크 실행해봐도 똑같은 문제가 납니다장치 생성하는 라인인거같은대 왜다른걸까요..?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요. 저는 자바로만 알고리즘을 풀어온 수강생입니다.일단 저의 코드는 아래 링크와 같습니다.http://boj.kr/c098c62b8ee14b3b88f6058b7d055a29코드를 잘 보시면 4번째 줄에 cnt 배열의 길이를 26으로 설정해두었음에도 통과가 되었습니다.원래대로라면 배열 길이가 200(최소 91)은 되어야대문자 Z까지 다 카운트할 수 있을텐데 제 부주의로 26으로 해버렸습니다이렇게 되면 for(char a : s) cnt[a - 'A']++;로 해줘야 할 줄 알았는데 그냥 통과가 되버렸네요.chatgpt에게 물어본 바로는 그러나 C++에서는 배열의 인덱스가 음수가 아니라면, 범위를 벗어나더라도 컴파일러는 해당 인덱스를 양의 정수로 간주하여 메모리를 접근하려고 시도합니다. 이런 상황에서는 예상치 못한 동작이 발생할 수 있으며, 이는 정의되지 않은 동작으로 분류됩니다. 따라서 코드가 정상적으로 동작하는 것은 운이 좋게 동작하는 경우일 수 있습니다만, 이는 올바른 코드 작성 방법이 아닙니다.자바였으면 ArrayIndexOfBound를 내뿜으며 컴파일오류가 나왔을텐데 통과가 되었다고 해서 약간 당황스럽네요혹시 이게 어떻게 된건지 설명해주실 수 있으실까요?만약을 위해 공유소스 외에도 에러문(?)이 나와있는 링크도 남깁니다.https://www.acmicpc.net/source/65705843감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
cin에 관한 질문
강의 잘 듣고 있습니다.while(scanf...)식으로 입력을 계속 받는 형태의 문제에서 cin >>입력을 쓸 수 있는 방법에 대해 궁금합니다. 예전에 풀었던 문제중엔 됐던 것도 있고 아닌것도 있었는데 정확한 기준을 모르겠네요. cin으로 입력받을 수 있는 방법이랑 scanf가 더 효율적인거라면 그 이유도 궁금합니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
벡터 erase 관련 질문입니다
벡터 v.erase(it)에서인자로 it를 넘겨주는데래퍼런스, 포인터로 넘겨주는것도아닌데넘겨준 it의 myproxy 를 null 값으로 바꾼건 진짜 it의 myporxy값과 상관없지안나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
map 자료구조를 이용한 중복된 요소 제거하는 방법에서 질문있습니다!
#include <bits/stdc++.h> using namespace std; map<int, int> mp; int main() { vector<int> a = {1,2,2,3,3}; // for (int i : a) // { // if (mp[i]) // { // continue; // } // else // { // mp[i] = 1; // } // } for (int i : a) mp[i] = 1; vector<int> ret; for (auto i : mp) { ret.push_back(i.first); } for (int i : ret) { cout << i << "\n"; } } 이런식으로 처음 a 백터의 값들을 mp에 넣어줄 때 굳이 mp안에 있는지 확인하고 있으면 continue하고 없으면 mp[i] = 1;를 해주지 않고 그냥 a백터를 한 바퀴 순회하면서 전체적으로 다 넣어 줘도 되지 않나요? map 자료구조의 키값을 중복되지 않게 갖는다는 특징을 이용해서 중복된 요소를 제거를 하는 것처럼 어차피 한 바퀴 돌면서 중복되는 값들을 키값에 넣으려고 해도 중복되서 추가가 되지 않을거같은데 혹시 continue를 사용해서 코드를 짜는 이유가 따로 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8-R 다익스트라 2번 사용 풀이 질문입니다.
강사님 안녕하세요8-R 풀이에서 다익스트라 2번 사용하여 풀이를 해주셨는데요.강의 영상 1:54 부근에서 간선간 왔다갔다 할 수 있다고, 양방향 간선인 것 처럼 말씀해주셨는데.문제에서는 아래와 같이 간선은 단방향이고, X 지점까지 가는 경로와 돌아오는 경로가 다를 수 있다고 되어있습니다.각각의 학생들은 파티에 참석하기 위해 걸어가서 다시 그들의 마을로 돌아와야 한다. 하지만 이 학생들은 워낙 게을러서 최단 시간에 오고 가기를 원한다.이 도로들은 단방향이기 때문에 아마 그들이 오고 가는 길이 다를지도 모른다. N명의 학생들 중 오고 가는데 가장 많은 시간을 소비하는 학생은 누구일지 구하여라.X -> 각 노드 까지 가는 최단거리는 다익스트라로 구하는 것은 이해했는데 ,각 노드 -> X 까지 가는 경로를 구하는 방법을, 경로 가중치는 그대로 두고 단순히 간선 방향을 반대로 하여 다익스트라로 풀이하는 설명이 잘 이해가 되지 않습니다.
-
미해결[게임 프로그래머 도약반] DirectX11 입문
선행 강의 수강 질문
안녕하세요.이번에 신규가입 얼리버드 25% 할인으로 DirectX11 강의를 구매해서 수강 중인 학생입니다.강의를 들어보니 Windows API와 STL 부터 선행이 필요하다고 생각이 들어[게임 프로그래머 입문 올인원] 강의도 수강하려고 했는데 할인 기간이 종료되었더군요...혹시 [게임 프로그래머 입문 올인원] 할인쿠폰을 받아 수강할 수는 없는 지 문의드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5 - X 파라미터로 array를 받을 때 질문
안녕하세요 강사님 ㅎㅎhttp://boj.kr/3ca01eafe71e4b31831368e71ae8e336해당 문제에서 cctv를 돌리는 로직이나 완탐을 하는 로직 같은 경우에 문제가 없어보이는데 go 메서드의 인자로 배열을 받는 것이 문제가 있는 것 같아 질문드립니다.디버깅 해보았을 때, 인자로 받는 배열이 매번 다음 go 재귀로 넘어가기 전에 memcpy를 하기때문에 그 전 go 실행이 다음 go 내부에서 사용하는 배열에 영향을 주지 않을 거라고 생각했는데, 카메라가 2개 이상 있는 케이스부터는 깊은 복사가 되지 않고 참조하는 것처럼 실행이 되어서 어떤 것이 문제일지 질문드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
교안 내용 및 char 초기화에 대한 질문입니다.
안녕하세요 강사님 강의 너무 유용하게 보고 있습니다.교안 내용 관련 질문도 있는데 0주차에 관련 내용 수업이 없어서 여기에 같이 적어봅니다.https://www.acmicpc.net/ceinfo/65628884질문 1. 저 배열 초기화가 왜 문제인지 교안 내용만으로 이해가 어려워서 추가 질문드립니다. 저는 선언할 때 제외하곤 {0,}을 사용을 안하는데 아래에서 a[5] = {0,}; 이 부분이 혼동의 여지가 있어 문제라는건가요? 질문 2. 강사님 코드를 따라쳐보는 연습을 하고 있는데 char chMid; 이렇게 선언하니 아래 if(chMid)부분에서 애당초 0이 아닌 쓰레기값이 있어 문제가 되어 {}초기화를 해줬습니다. VS 2015를 사용중인데 구버전이라 초기화 지원이 안되는 걸까요? 아니면 다른 이유가 있다면 알려주시면 감사할 것 같습니다. PS. 가끔 드립치시는거 재밌습니다 ㅎㅎ
-
미해결[게임 프로그래머 도약반] DirectX11 입문
Part1: C++ 프로그래밍 입문 강의듣고 넘어왔습니다
질문 1. [게임 프로그래머 도약반] DirectX11 입문 들어 가기 전 혹시 미리 공부해가야 되는 것 이 있을까요?질문 2. 다이렉트x가 처음이라면 물방울책 구매해서 섹션 11부터 시작하는게 좋을까요?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
Windows API SceneManager 동적할당 부분
switch (sceneType) { case SceneType::DevScene: newScene = new DevScene(); break; case SceneType::GameScene: newScene = new GameScene(); break; } sceneType별로 동적할당을 하는 부분 같은데,new 부분에 밑줄이 뜨는 이유가 뭘까요?GameScene부분과 DevScene 부분 상속 처리는 다 했습니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
next_permutation을 사용하면서 만약에 n개 중에서 n-2개의 값을 뺸다고 했을 때 중복이 발생하지 않도록 할 수도 있나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.next_permutation을 사용하면서 만약에 n개 중에서 n-2개의 값을 뺸다고 했을 때 중복이 발생하지 않도록 할 수도 있나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
투포인터 시간복잡도
http://boj.kr/3e78cb0c919942b99e839ea6eb90dfa6 해당 코드에서 투포인터를 사용시 시간복잡도가n log n(퀵 sort) + n (while 문) 으로 제가 생각을 해봤는데 맞을까요??
-
미해결홍정모의 따라하며 배우는 C++
4.2 29분 48초
안녕하세요 교수님. extern 설명하실 때, 초보자 중에 include로 cpp파일을 가져오는 사람도 있다 그러셨는데, 혹시 이런 방식으로 가져오면 안 좋은 방식인 건가요? 혹시 그렇다면 이유가 있나요??
-
미해결홍정모의 따라하며 배우는 C++
[0.4.0] Clean Solution 후 Starting Without Debugging 시 자동으로 Build가 됩니다
Debug / Release 시Build 하는 안내창이 안나오고 바로 빌드 후 실행됩니다!Solution Clean 된 상태는 확인했습니다. 설정을 잘못 한걸까요 ㅠㅠ
-
미해결홍정모의 따라하며 배우는 C++
[0.4.0] VS 2022 에서 .ilk 파일이 Debug 폴더가 아닌 다른 폴더에 생성이됩니다
x64나 x83으로 빌드해도 다른 폴더에 .ilk 파일이 생성되는데 디렉토리를 변경해야할까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
복사생성자와 이동생성자 차이를 잘모르겟습니다
개념은 알고 있습니다복사 : 복사하여 똑같은 개체를 만드는 것이동 : 원본 객체에서 새로운 객체로 이동 시키는 것구글링 했을때 이동 생성자에 대한 정보가이동 생성자는 객체의 데이터를 복사하지 않고, 데이터의 소유권만 이전합니다라고 되 있는대 객체의 데이터는 복사 하는 거 아닌가요?Night(const Night& night) : m_hp(night.m_hp),m_Attack(night.m_Attack),m_Pet(new Pet(night.m_Pet)){PrintText("Night(const Night&) 복사생성자 호출");}Night(Night&& night) noexcept : m_hp(night.m_hp), m_Attack(night.m_Attack), m_Pet(night.m_Pet){night.m_Pet = nullptr;PrintText("Night(const Night&&) 이동생성자 호출");}
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
SwapChain이 만들어질때 생성되는 버퍼 생성 영역
강의를 보다 렌더링 될때 입력될 Vertex 데이터가 그래픽 카드 내부에 있는 VRAM 내부에 생성된다는 사실을 알게되었니다.그래서 궁금한게 생겼는데 혹시 Swap Chain이 만들어질때 생성되는 백 버퍼들또한 VRAM 내부에 만들어지는 건가요? 아니면 RAM에 만들어지는 건가요?
-
미해결[게임 프로그래머 도약반] DirectX11 입문
CreateInputLayout 도중 Offset 관련하여
강의를 듣고 있는 도중 질문이 하나 생겼습니다 강의 16:05 부분입니다.강사님께서 CreateInputLayout을 하기 위해 이전 작업으로 D3D11_INPUT_ELEMENT_DESC라는 구조체를 만드셨고 내부의 요소로 UINT AlignedByteOffset; 이러한 변수가 있었습니다.강의에서 강사님께서 이 부분은 변수가 시작되는 지점을 적는 변수라고 알려주시고 Color가 시작되는 지점이 12Byte라고 하셨는데 이 D3D11_INPUT_ELEMENT_DESC라는 구조체로 설명하려하는 것이 이 전에 선언해두었던 struct Vertex{ Vec3 position; Color color;};라는 구조체였다면 구조체의 메모리 패딩에 따라 제일 큰 변수의 메모리 크기씩 영역이 쪼개져서 16Byte씩 끊어지니깐 position은 0 ~ 12구간 그리고 12 ~ 16 구간은 메모리 패딩으로 인해 비어져 있고 16 ~ 32까지가 color가 있는 구간으로 알고있었습니다 그래서 제가 잘못 생각하고 있는건가해서 12대신 16을 넣어봤는데 정상적인 색이 안나오지 않더라고요.제가 개념을 잘못 알고있는건가 아니면 제대로 알고 있는데 이 부분만 특수한 케이스로 12라고 입력이 된건가를 잘 모르겠어서 개념을 확실히 잡고 가야된다고 생각해서 질문 드립니다 혹시 어디가 잘못된 건지 알려주실 수 있으신가요?