묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
가상 함수 에 대해 이해하고있는지 봐주세요
1 .컴파일 시 가상함수가 정의된 클래스가 있다면 가상함수테이블(Virtual function table)이 만들어진다.2.동적 바인딩 (Dynamic Binding): 동적 바인딩은 런타임 시간에 함수 호출을 어떤 함수와 연결할지가 결정되는 메커니즘3.vftable(4byte)( 함수포인터 배열) 은 객체 마다가 아닌 클래스 마다 동일한 메모리 주소 가리킨다.
-
미해결홍정모의 따라하며 배우는 C++
연습문제 질문입니다.
int num1{0}; 처럼 uniform initialization을 하게 되면 error가 뜨고 int num1(0) direct initialization을 하면 컴파일이 되는데 어떤 차이 인가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-A
http://boj.kr/2f3c6f01dd234db9b9b55e990409fdc3맞왜틀입니다 ㅠㅠ 큰돌님의 해설 코드 외에도 지금까지 풀어봤던 걸 기반으로 풀어보려고 했는데 잘 안되네요...질문 게시판에 있는 모든 반례를 다 적용해봐도 잘 모르겠습니다...ㅜㅜ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-D 질문입니다!!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님 문제를 보고 DFS로 더 간단하게 풀 수 있을것 같아서 시도해봤는데 오답이 나왔습니다.제가 어느 부분을 놓쳤는지 봐주시면 감사하겠습니다!http://boj.kr/93bc347be5074e999271416f69842831
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-E 뮤탈리스크문제 질문있습니다
http://boj.kr/76d330363fe14462b380a7036a3434f7문제가 이해가 잘 가지않아 선생님의 코드를 보고 작성하였습니다여기서 궁금한부분이 bfs일경우일때 visited[][][]3차원 배열에 이미 들어가있는 값이 있으면 continue하는 조건인데 q에들어가는 원소가 추후에 들어오는 visited일 경우 같은 원소의 idx라고 하여도 dfs가 아닌 bfs인 이상 무조건 count되는 레벨의 갯수가 트리나 그래프로 따졌을때 depth 가 깊은 탐색순서가 되기때문에 visited가 원소가 있을때 이후에 들어오는 count는 무조건 기존에들어가있는 vistied의 원소보다 클 것이므로 해당조건만으로 문제를 풀수있는것인가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-c fill 함
fill(&visited[0][0], &visited[0][0] + 101*101, 0);이 부분에서 저는n*n까지만 필요하다고 판단해서 fill(&visited[0][0], &visited[0][0] + n*n, 0);이렇게 했더니 아예 다른 값이 나오다ㅓ라구요..저는 visited[][] 를 n8n만큼만 사용한 것인데 왜 값이 다른지 궁금합니다... 좋은 강의 감사드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-Q 치즈 질문입니다.
안녕하세요. 여러 테스트 케이스 가지고 해봤는데 반례를 찾지 못해서 질문 드립니다. 단순 반복 DFS로 구현을 해봤는데요.치즈 조각이 남아 있을 때 까지 반복공기 부분 찾기 ( 치즈 속 구멍은 x)공기와 맞닿은 치즈 부분 찾기공기와 맞닿은 부분 녹이기12%에서 틀리는데 어떤 부분을 놓친걸까요?? http://boj.kr/0eaf787d61fa40b093d24ee028da3376
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
모범 답안 코드 로직에 대한 질문입니다.
코드를 아직 이해하지 못했습니다. go 함수에서 a[y][x]가 1이기만 하면 무조건 벡터에 좌표를 넣고 return 하는 것 같은데, 이렇게 하면 가장 바깥에 있는 치즈의 면적 외에도 내부에 있는 치즈 (1)까지 전부 포함되어 벡터에 넣고 메인 함수에서 0으로 만드는 것 아닌가요? 가장 바깥쪽을 인식한다.가장 바깥쪽을 제거한다.면적을 카운트 한다.완전히 없어질 때까지 반복 이게 정답 로직인 것 같은데, 코드에서는 a[y][x]가 1이기만 하면 무조건 제거하는 것으로 해석되어 헷갈려서 질문드립니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
복사생성자 질문입니다
얕은복사 vs 깊은복사 #1 19:00int main(){Knight knight;knight._hp = 200;Knight knight2 = knight;Knight knight3;knight3 = knight;}Q1)얕은복사는Stack : Knight1 [ hp 0x1000 ] -> Heap 0x1000 pet[ ]Stack : Knight2 [ hp 0x2000 ] -> Heap 0x1000 pet[ ]Stack : Knight3 [ hp 0x3000 ] -> Heap 0x1000 pet[ ]깊은복사는Stack : Knight1 [ hp 0x1000 ] -> Heap 0x1000 pet[ ]Stack : Knight2 [ hp 0x2000 ] -> Heap 0x2000 pet[ ]Stack : Knight3 [ hp 0x3000 ] -> Heap 0x3000 pet[ ]이렇게 되는거아닌가요 ? hp 가 값만 복사 되서 전달되고 hp 주소는 그대로 아닌가요? Q2 )얕은복사는 그냥 명시하지 않은 암시적 복사생성자라고 봐도되나여? Q3) 얕은복사와 깊은복사 두개다 쓰는경우도있나요?아니면 둘중 하나를 골라서 쓰게되나요?
-
미해결홍정모의 따라하며 배우는 C++
6:21 assignTeacher
안녕하세요 수업을 들으면서 코드를 작성하던중 다음과 같은 오류가 나타나서 여쭈어봅니다. const 를 지우고 하면 문제없이 실행이 되는데 왜 이러는건가요 ?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
종화 문제 답안 코드 질문
void dfs(int x, int y) { if (board[x][y]==2||board[x][y]==0) return; if (x < 0 || y < 0 || x >= n || y >= m) return; board[x][y] = 2; dfs(x + 1, y); dfs(x, y + 1); dfs(x - 1, y); dfs(x, y - 1); return; }안녕하세요 선생님 혹시 강의 내용에 종화 문제에서 이렇게 구현하는 것 또한 dfs라고 할 수 있는걸까요??제 코드가 앞으로 문제 풀기에 있어서 더 복잡해 보이는건지 감이 잡히지 않아서 질문드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-C 복습 !
안녕하십니까 큰돌님복습하다가 궁금한게 생겼습니다안전영역 최대값을 구하기 위해 ret 을 1로 초기화하는데3중 반복문의 첫 번째 for문이 무조건 1부터 100까지 돌면서 잠기지 않는 지역이 있을 수 있어도(이때, 최소값은 1)영역 높이가 최대 100이고 반복문 d값이 100까지 가면 결국 마지막에 100 이하의 높이인 영역은 잠기므로 무조건 최소값은 0으로 되는 거 아닌가요 ?? 그래서 ret 을 0으로 초기화 해야 된다고 생각하는데 뭔가 어렵네요ㅜ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
쿼드트리 메모리 초과 질문
안녕하세요 강사님 ㅎㅎ맞은 코드 : http://boj.kr/1b7e6a102d7a4a3893e9e95d35517735틀린 코드 (메모리 초과) : http://boj.kr/8e21367e52314b8585922b74a0fabad8둘의 차이는 재귀함수의 기저사례만 다릅니다. 하지만 둘의 차이가 왜 메모리 초과를 발생시키는지는 잘 이해가 가지 않아서 질문드립니다 !
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-L 주몽 질문입니다.
안녕하세요변수 선언하는데 있어서 main위에 선언하는 것과 main안에서 선언하는게 무슨 차이가 있나요??int n, m, num[15001], cnt;해당 부분을 main 안에서 선언한 경우 틀렸다고 나오고, main위에다가 선언해야 맞았다고 나오는데, 그 차이를 이해하기 어려워서요!확인부탁드립니다.http://boj.kr/0068cf0a6ca54091a5b44ac723c2ff4d
-
미해결홍정모의 따라하며 배우는 C++
이중 포인터에 저장되는 것에 대해 궁금한 점이 있습니다.
이중 포인터에는 포인터의 주소만 저장이 가능한 것으로 알고 있습니다. 그래서 동적 다차원 배열을 만들 때 이중 포인터를 정의하면int** matrix = new int* [row];이렇게 정의가 가능합니다. 제가 이해가 안되는 부분은 바로 뒤에 나오는 반복문 입니다.for (int r = 0; r < row; ++r) { matrix[r] = new int[col]; }여기서 matrix에 저장되는 것이 new int[col] 인데, 이는 포인터가 가지는 행렬의 주소로 생각 됩니다. matrix[0]은 matrix 라는 이중 포인터 안에 저장되있는 첫번째 포인터를 나타내어서 저렇게 작성되는 것인지 궁금합니다.
-
미해결[하루 10분|C++] 누구나 쉽게 배우는 C++ 프로그래밍 입문
문자열
문자열 강의에서 null 문자를 넣어야 원하는 문자열이 출력된다고 하셨는데 저는 null 문자 없이도 잘 출력돼요.. 전 vscode를 쓰는데 무슨 차이인가요?
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
44번 질문 있습니다
43번 문제는 이제 풀 수 있어서 44번 문제도 43번 처럼 진행했습니다. 그런데 3이 안나오고 다른 답만 나와서요 어디가 잘 못됐는지 알려주실수 있으실까요?#include<iostream> #include<vector> #include<algorithm> using namespace std; int n,m, a[1001]; int dis(int x) { int i,sum=0,cnt=1; for(i=1;i<=n;i++) { if(sum +a[i]>x) { sum = a[i]; cnt++; } else sum=sum+a[i]; } return cnt; } int main() { int i,lt,rt=0,max=-2147000000,mid,res=0; cin >> n >>m; for(i=1;i<=n;i++) { cin >> a[i]; rt +=a[i]; if(max<a[i]) max=a[i]; } lt = a[1]; while(lt<=rt) { mid = (lt+rt)/2; if(mid>max && dis(mid)<=m) { res = mid; lt = mid+1; } else rt=mid-1; } cout << res; return 0; }
-
미해결홍정모의 따라하며 배우는 C++
소멸자에서 Exception Error가 발생하는데 원인을 잘 모르겠습니다.
안녕하세요, 9.12 이니셜라이저 리스트 강의 수강중에 동일한 코드 빌드시 그림과 같이 소멸자에서 에러가 납니다. 원인이 무엇인지, 제가 어떤 부분에 대한 이해가 부족한 것인지 짚어주시면 감사하겠습니다.
-
미해결홍정모의 따라하며 배우는 C++
6.8강 중에서 struct에 포인터 사용 부분에서 질문이 있습니다.
이와 같은 Mys 라는 struct가 있을 때 포인터 변수 k를 선언한 후 일반 정수값을 바꾸는 것은 가능한데, 포인터 변수를 이용해서 행렬값을 넣는 것은 불가능 한 것인지 궁금합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-I 질문 입니다.
http://boj.kr/bcc06cf6a93641da9808a0950454e679 문자 탐색 및 종류 저장은 비슷하게 진행했고, atoi를 사용해서 앞의 0 제거 및 정수화를 진행해서 map에 저장했습니다. 이후 벡터에 넣을 때, second값만큼 first를 pish_back 후 less<int>() functor로 정렬을 했습니다. public TC에서는 문제없이 작동하지만 private TC에서 걸립니다.어디서 문제가 발생하는지 모르겠습니다.