inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

참조자 관련 질문 드립니다!

해결됨

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

안녕하세요 선생님, 선생님이 올려주신 정답 코드입니다. dfs에서 매개변수로 벡터에 참조자를 붙이셨는데, 참조자를 붙였을때와 붙지 않았을때의 차이, 그리고 왜 이 코드에서 참조자를 붙여야만 하는지를 알려주시면 감사하겠습니다. 좋은 강의 늘 감사드립니다!

  • c++
  • 코딩-테스트
김영수 댓글 1 좋아요 0 조회수 183

6.6 strcpy, strcat 함수 코딩

미해결

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

안녕하세요, 한번 strcpy와 strcat의 기능을 수행하는 함수를 작성해 보았습니다. 일단 작동은 제대로 되는 지 확인이 되었고, 부족한 부분이 있다면 얼마든지 피드백 주시면 감사하겠습니다! void Strcpy(char* dest, char* source) { int count = 0; for (int i = 0; i < 50; i++) { if (source[i] == NULL) { break; } count++; } for (int i = 0; i < count + 1; i++) { dest[i] = source[i]; } } void Strcat(char* dest, char* source) { int count_d = 0; int count_s = 0; for (int i = 0; i < 50; i++) { if (source[i] == NULL) { break; } count_s++; } for (int i = 0; i < 50; i++) { if (dest[i] == NULL) { break; } count_d++; } for (int i = 0; i < count_s + 1; i++) { dest[i+count_d] = source[i]; } } int main(void) { using namespace std; char source[50] = "Copy this!"; char dest[50]; Strcpy(dest, source); Strcat(dest, source); cout << "This is source : " << source << endl; cout << "This is dest : " << dest << endl; return 0; }

  • c++
원인석 댓글 1 좋아요 1 조회수 321

메모리 초과 관련 질문 드립니다!

해결됨

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

안녕하세요 선생님, http://boj.kr/2555600284cb48a2a7065e44862058b4 http://boj.kr/fdd2eb2834dd4f45a3f6f6c95feac99d 위가 메모리 초과가 발생한 코드, 아래가 통과한 코드입니다. 해당 문제를 복습하기 위해 다음날 다시 코드를 짜봤는데, 메모리초과가 발생하여 통과된 코드와 비교해봤지만 두 코드 사이의 유의미한 차이를 찾지 못하여 무엇이 문제인지 잘 모르겠습니다. 또 메모리 초과는 어떤 환경에서 발생하며, 정확히 메모리 초과가 어떤 건지도 간략하게 설명해주시면 감사하겠습니다. 좋은 강의 늘 감사합니다.

  • c++
  • 코딩-테스트
김영수 댓글 2 좋아요 0 조회수 309

메모리 리크는 어떻게 체크하나요?

미해결

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

40:10 메모리 리크 체크를 앞 강의 중 어딘가에서 봤는데.. 못 찾겠네요..

  • c++
  • 네트워크
  • ue-blueprint
  • 게임수학
  • windows-api
김성범 댓글 2 좋아요 0 조회수 660

RegisterAccept를 여러번 호출해줘야 하는 흐름이 잘 이해가 안됩니다.

해결됨

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

강의 39분쯤 그림판을 켜서 설명해주시는 부분에서 accept 또한 iocp 흐름을 따라 낚싯대를 다시 던져줘야 한다고 설명해 주셨는데요, Listener의 accept가 왜 다시 호출되어야 하는지가 잘 이해가 안됩니다. 한번 연결된 후에 작업이 완료되고 기존의 클라이언트가 여전히 연결되었는지 재확인 하는 과정인가요?

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

2-C 질문있습니다.

해결됨

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

http://boj.kr/5e6cf7cdc6fc4d2c8d4cbfe08d65038c y,x기준이 아닌 x,y기준으로 풀어보았습니다.오버플로우 조건식도 &&으로 바꾸어보았습니다. 테스트 케이스는 모두 통과했는데 또 오답입니다. 무엇을 잘못하고 있는 걸까요 ㅠ

  • c++
  • 코딩-테스트
최은정 ◡̎ 댓글 2 좋아요 0 조회수 185

DFS, BFS 소스 코드 질문있습니다

해결됨

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

http://boj.kr/eb95bf013f5d4203bfdb1e9e027fc489 백준에 DFS,BFS문제가 있어 강의 소스코드 복습차 풀어봤는데, 테스트케이스는 통과하지만 제출했을 때 오답입니다. 소스코드를 응용하지 못하고 놓친 포인트가 있을까요?

  • c++
  • 코딩-테스트
최은정 ◡̎ 댓글 2 좋아요 0 조회수 200

2-R. 질문있습니다

해결됨

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

http://boj.kr/eaf52073800f4b9397140cea145862d6 제 코드에서 놓친게 무엇일까요..! 현재 노드에서 이어진 것이 없고, 잘리지 않았다면 리프노드로 판단해서 수를 카운트 해주었는데 오답입니다

  • c++
  • 코딩-테스트
최은정 ◡̎ 댓글 2 좋아요 0 조회수 242

2-O 질문있습니다!

미해결

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

http://boj.kr/132cce1f1dab4af7be9ad1e722220221 이 코드가 틀린 이유가 뭘까요..ㅠ 도저히 모르겠네요. 그리고, 정답 풀이에서 check bool 변수가 하는 역할이 무엇일까요? 제 코드와의 차이가 check 플래그 변수가 없다는 것이 가장 큰 차이인 거 같은데 왜인지 모르겠습니다..

  • c++
  • 코딩-테스트
최은정 ◡̎ 댓글 2 좋아요 0 조회수 283

안녕하세요 5-R 주사위 윷놀이 질문이 있습니다.

해결됨

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

#include<bits/stdc++.h> using namespace std; const int INF = 987654321; int a[14], mal[4], n = 10; int v[104]; 에서 원소 값을 넣어주는 int v[104]; 의 배열 크기가 70, 80으로 해보면 값이 달라지는 것을 확인을 했습니다. 실제로 31까지 밖에 인덱스를 사용하지 않음에도 불구하고 100 이상으로 배열의 크기를 올려줘야 하는 이유는 무엇일까요? 통상적으로 +3정도 배열의 크기를 잡아주었습니다! 이번 예시로 앞으로 배열의 크기를 잡을 때 3배 정도의 크기로 잡아주어야 하나 고민을 하게 되었습니다.

  • c++
  • 코딩-테스트
whico 댓글 3 좋아요 0 조회수 351

교안 p85 stable_sort()

해결됨

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

안녕하세요! 교안 p85의 stable_sort() 예제 코드에서 #include <bits/stdc++.h> using namespace std; int main() { // pair의 첫 번째 요소는 정렬한 값, 두 번째 요소는 원래 인덱스를 나타냄 vector<pair<int, int>> pairs = {{5, 1}, {2, 2}, {5, 3}, {3, 4}, {2, 5}}; cout << "Original: "; for (const auto &p : pairs) { cout << "(" << p.first << ", " << p.second << ") "; } cout << "\n"; sort(pairs.begin(), pairs.end()); cout << "Sorted with sort: "; for (const auto &p : pairs) { cout << "(" << p.first << ", " << p.second << ") "; } cout << "\n"; // 원본 데이터로 초기화 pairs = {{5, 1}, {2, 2}, {5, 3}, {3, 4}, {2, 5}}; // stable_sort 사용 stable_sort(pairs.begin(), pairs.end()); cout << "Sorted with stable_sort: "; for (const auto &p : pairs) { cout << "(" << p.first << ", " << p.second << ") "; } cout << "\n"; return 0; } for (const auto &p : pairs) { cout << "(" << p.first << ", " << p.second << ") "; } 여기에서 pairs에 들어있는 타입(pair<int, int>)이 왜 const auto &인지 궁금합니다! 또 교안 p83의 예제 코드에서 #include <bits/stdc++.h> using namespace std; vector<pair<int, int>> v; int main() { for (int i = 10; i >= 1; i--) { v.push_back({i, 10 - i}); } sort(v.begin(), v.end()); for (auto it : v) cout << it.first << " : " << it.second << "\n"; return 0; } 위의 for 문에서 pair<int, int>를 받을 때는 auto 로 받는데, 두 예제가 같은 pair<int, int> 타입을 받을 때 for (const auto &p : pairs) 와 for (auto it : v) 로 다른 이유가 무엇인지 알고싶습니다!

  • c++
  • 코딩-테스트
Clain 댓글 2 좋아요 1 조회수 183

7-V 질문 있습니다

미해결

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

안녕하세요, 큰돌님 7-v 질문 드립니다. 첫번째 풀이가 큰돌님의 답 코드와 비슷한 로직을 사용한다고 생각하는데, 왜 시간 초과가 나는지 모르겠습니다. https://www.acmicpc.net/source/73255801 백트래킹 풀이 (시간초과) https://www.acmicpc.net/source/73256688 dp 배열 + 반복문 (맞았습니다!)

  • c++
  • 코딩-테스트
김동훈 댓글 1 좋아요 0 조회수 220

onParentChanged -> onParentsignal 이유 문의

해결됨

[Qt/QML 기초 Part 1] C++ 연동과 시그널-슬롯으로 배우는 크로스플랫폼 앱 개발

강의를 따라하면서 도중에 갑자기 onParentChanged가 onParentSignal로 수정이 되었던데 onParentChanged는 언제 사용하는 걸까요?

  • 하이브리드-앱
  • c++
  • gui
  • qt
  • qml
다중언어GUI 댓글 2 좋아요 1 조회수 460

이터레이터 질문

해결됨

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 현재 교안으로 1회독중에 이터레이터 부분에서 막혀 질문드립니다. cout << &*lower_bound(a.begin(), a.end(), 3) << endl; cout << &*a.begin(); cout << &*lower_bound(a.begin(), a.end(), 3) - &*a.begin() << endl; 각각의 주소값이 0x139e05e58 0x139e05e50 임을 가정했을때 0x139e05e58 - 0x139e05e50 연산이 왜 8이 아니라 2가 되는지 모르겠습니다.

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

3-D 문제 시간초과

해결됨

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의 잘 듣고 있습니다.!! 혼자 풀어보는 중인데, 시간초과가 나서 오랫동안 고민하다 질문드립니다. 제 생각에는 Fire를 전파하는 부분에서 비효율이 있는듯한데, 이를 개선할 방법이 딱히 떠오르지 않아서요, 질문드립니다. ㅠ #include <bits/stdc++.h> using namespace std; int R, C; vector<vector<char>> maze; pair<int, int> jihun; vector<pair<int, int>> fire; vector<vector<int>> delta = {{0,-1},{1,0},{0,1},{-1,0}}; vector<vector<int>> visited; set<int> ret; void dfs(pair<int, int>J, int step){ step+=1; // cout << "DEBUG: " << step << ", (" << J.first <<"," << J.second << ")" << endl; // for(int i = 0 ; i < R ; ++i){ // for(int j = 0 ; j < C ; ++j){ // if (i ==J.first && j == J.second) cout << "J"; // else cout << maze[i][j]; // } // cout << endl; // } // cout << endl; if (J.first == 0 || J.second == 0 || J.first == R-1 || J.second == C-1){ ret.insert(step); return; } // 1. 맵 업데이트 int cnt = 0; int s = fire.size(); for(int q = 0 ; q < s ; ++q ){ for(int p = 0 ; p < 4 ; ++p){ int nextF_i = fire[q].first + delta[p][0]; int nextF_j = fire[q].second+ delta[p][1]; if (nextF_i >=0 && nextF_j >=0 && nextF_i < R && nextF_j < C){ if (maze[nextF_i][nextF_j] == '.' || maze[nextF_i][nextF_j] == 'J'){ maze[nextF_i][nextF_j] = 'F'; fire.push_back({nextF_i, nextF_j}); cnt ++; } } } } // 2. dfs 호출 propagation for(auto d : delta){ int next_i = J.first + d[0]; int next_j = J.second+ d[1]; if (next_i >= 0 && next_j >= 0 && next_i < R && next_j < C){ if (visited[next_i][next_j] == 0 && maze[next_i][next_j] == '.'){ visited[next_i][next_j] = 1; // 방문 처리 dfs({next_i, next_j}, step); visited[next_i][next_j] = 0; // 방문 원복 } } } // 3. 맵 원복 while(cnt>0){ pair<int, int> b = fire.back(); fire.pop_back(); maze[b.first][b.second] = '.'; cnt--; } } int main(){ cin >> R >> C; maze = vector<vector<char>>(R, vector<char>(C)); visited = vector<vector<int>>(R, vector<int>(C, 0)); string s; for(int i = 0 ; i <R ; ++i){ cin >> s; for(int j = 0 ; j < C ; ++j){ maze[i][j] = s[j]; if (maze[i][j] == 'J') jihun = {i,j}; else if (maze[i][j] == 'F') fire.push_back({i,j}); } } visited[jihun.first][jihun.second] = 1; dfs(jihun, 0); if (!ret.empty()){ cout << *ret.begin(); } else cout <<"IMPOSSIBLE"; return 0; }

  • c++
  • 코딩-테스트
윽쓰욱스 댓글 2 좋아요 0 조회수 306

2-H 질문있습니다

미해결

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

모음이나 자음이 3개가 연속으로 올 때 비밀번호로 적절하지 않다는 조건을 for문 밖으로 빼면 틀리는 이유가 알고 싶습니다!이렇게 짰을 땐 틀렸다고 나오는데 조건을 어느 부분에서 만족하지 않는지 궁금합니다 #include<bits/stdc++.h> using namespace std; string str; bool mo(char c){ if(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u'){ return 1; } return 0; } int main(){ while(true){ cin >> str; if(str == "end"){ break; } bool moum = 0; bool same = 0; int cnt1 = 0; int cnt2 = 0; for(int i = 0; i < str.length(); i++){ if(mo(str[i])){ moum = 1; cnt1++; cnt2 = 0; }else{ cnt2++; cnt1 = 0; } if(i >= 1 && (str[i-1] == str[i]) && str[i] != 'e' && str[i] != 'o'){ same = 1; } } if(cnt1 >= 3 || cnt2 >= 3 || moum == 0 || same == 1){ cout << "<" << str << "> is not acceptable.\n"; }else{ cout << "<" << str << "> is acceptable.\n"; } } return 0; }

  • c++
  • 코딩-테스트
강민석 댓글 1 좋아요 0 조회수 223

백준11505, 교재 73번

미해결

Do it! 알고리즘 코딩테스트 with C++

#include <iostream> #include <vector> #include <cmath> using namespace std; static vector<long> tree; static int n, m, k,mod = 1000000007; void tree_set(int a); void change_val(int index, long val); long gugan(int s, int e); int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n >> m >> k; int q = n; int l = 0; while (q != 0) { q = q / 2; l++; } int tree_size = int(pow(2, l+1)); int left_index = pow(2, l); tree.resize(tree_size); fill(tree.begin(), tree.end(), 1); for (int i = left_index; i < n+left_index; i++) { cin >> tree[i]; } tree_set(tree_size-1); for (int i = 0; i < m + k; i++) { long a, s, e; cin >> a >> s >> e; if (a == 1) { change_val(s + left_index - 1, e); } else if (a == 2) { long start = s + left_index - 1; long end = e + left_index - 1; long result = gugan(start, end); cout<<result<<'\n'; } } } long gugan(int s, int e) { long part_sum = 1; while (s <= e) { if (s % 2 == 1) { part_sum *= tree[s]%mod; } if (e % 2 == 0) { part_sum *= tree[e]%mod; } s = (s + 1) / 2; e = (e - 1) / 2; } return part_sum; } void change_val(int index, long val) { tree[index] = val; while (index > 1) { index = index / 2; tree[index] = tree[index*2]%mod*tree[index*2+1]%mod; } } void tree_set(int a) { while (a != 1) { tree[a / 2] *= tree[a]%mod; a--; } } 위의 방법으로 코드를짜서 제출했더니 출력초과가 발생합니다. 왜 이런오류가 발생하는지 모르겠습니다..

  • c++
  • 코딩-테스트
  • 알고리즘
ㅁㄴㅇㄹㅋㅌㅍ 댓글 1 좋아요 0 조회수 307

9.11 8분쯤 질문

해결됨

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

#include <iostream> #include <cassert> using namespace std; class MyString { public: char *m_data = nullptr; int m_length = 0; public: MyString(const char *source = "") { assert(source); // 받은 문자열이 비어있진 않은가 확인 m_length = std::strlen(source) + 1; m_data = new char[m_length]; // 배열 동적할당 for (int i = 0; i < m_length; ++i) m_data[i] = source[i]; m_data[m_length - 1] = '\0'; } ~MyString() { delete[] m_data; } char* getString() { return m_data; } int getLength() { return m_length; } }; int main() { MyString hello("Hello"); cout << (int*)hello.m_data << endl; cout << &(hello.m_data) << endl; cout << hello.getString() << endl; { MyString copy = hello; cout << (int*)copy.m_data << endl; cout << &(copy.m_data) << endl; cout << copy.getString() << endl; } cout << hello.getString() << endl; return 0; } 여기에서 cout << (int*)hello.m_data << endl; 과 cout << &(hello.m_data) << endl; 의 값이 다르게 출력되는 이유가 뭔지 궁금합니다. int main() { char name[] = "jack jack"; cout << (int*)name << endl; cout << &name << endl; } 이렇게 했을 때는 두 주소값이 같게 찍히는데, 위의 경우와 어떻게 다른지 궁금합니다. 그리고 main함수에서 scope를 빠져나오고, cout << hello.getString() << endl; 했을 때, 저는 Hello 라고 잘 출력이 되는데, 이건 컴파일러와 다른건가요? (강의 영상 8분 22초에서 보여지는 결과와 다르게 나옵니다.)

  • c++
ii00 댓글 1 좋아요 1 조회수 193

교안 81p 예제코드 질문드립니다.

해결됨

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

안녕하세요 큰돌님 교안 81p 예제 코드를 그대로 복사하였는데 에러가 떠서요. 짧은 코드라서 캡쳐본으로 올리겠습니다. 위에서 전역변수로 초기화하는 것까지 똑같이 했는데 왜 이런 오류가 뜨는 것인지 궁금합니다.

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

교안 79p vector 초기화 질문드립니다.

해결됨

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

안녕하세요 큰돌님 강의를 듣고 천천히 따라가고 있는데요, 강의 설명도 너무 이해되게 잘해주시고 교안도 잘 보고 있습니다. 그런데 몇 가지 아쉬운 부분들이 있어서요..ㅠㅠ c++을 처음 접하는데 가끔 예시코드를 봤을 때 설명 않고 넘어가시는 부분이 있기에 이해가 안될 때가 종종 있습니다.. ㅜㅜ 예를 들어 교안 79p에서 vector<int> v{1, 2, 3}; 이 코드에서 지금 vector가 초기화가 어떻게 된 것인지 주석이라도 간략하게 달아주셨으면 좋겠는데 따로 찾아봐도 이거랑 비슷한 방식의 초기화를 잘 못찾겠어서요.. 제가 코드를 더 작성해서 저렇게 초기화된 건 v = {1, 2, 3}과 같다고 유추하였는데 맞을까요..? 아직 교안 전부를 본 것은 아니라 뒤에 설명을 해주실지는 모르지만, 당장의 예제 코드를 이해하기 위해서 추가적으로 구글링하고 하는 부분들이 조금 시간이 소요되는 것 같습니다 그리고 다른 부분에서도, 교안에서 처음 push_back()이 언급됐을 때 문자하나씩밖에 더하지 못한다고 설명해주셨는데, split() 강의에서는 string 단위로 push_back(token) 해서 문자열이 추가되는 거 보고 혼란스럽기도 했습니다..ㅜㅜ 다르게 이해될 소지 없이 분명하게 설명해주셨으면 좋겠습니다.. TrivallyCopyable도 그렇고, 이런 UB같은 것도 그렇고 이미 알고 있을 거라고 생각하시고 넘어가시는 부분들에, 물론 중요한 설명을 빠뜨리신 것은 절대 아니지만 이런 작은 부분들이 모여서 제가 교안 외에 따로 검색을 하거나 찾는 부분이 잦게되다 보니, 시간도 걸리고 자꾸 흐름이 끊겨서요.. 시간이 걸리더라도 이러한 부분들에 대해서 간단한 주석이라도 설명해주시면 예제코드를 보았을 때 바로 이해하기가 더 좋을 것 같다는 생각이 들었습니다..! 큰돌님 유튜브도 잘 보고있고 이미 충분히 질 좋은 강의와 빠른 피드백으로 감사함이 참 많은데.. c++을 처음 접하는 사람들도 들을 수 있다고 하셔서, 이 강의 하나로 c++을 빠르게 공부할 목적으로 구매한 것이라 제 욕심이지만 말씀드립니다..ㅠㅠ

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

인기 태그

인프런 TOP Writers

주간 인기글