inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

교안 108p insert, erase

해결됨

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

안녕하세요 🙂 큰돌님 교안 108p에 있는 예제코드를 제가 insert와 erase를 이해하기 위해서 아래와 같이 변경하였는데요. #include <bits/stdc++.h> using namespace std; list<int> a; void print(list<int> a) { for (auto it : a) cout << it << " "; cout << '\n'; } int main() { for (int i = 1; i <= 3; i++) a.push_back(i); // a = 1 2 3 for (int i = 1; i <= 3; i++) a.push_front(i); // a = 3 2 1 1 2 3 auto it = a.begin(); it++; a.insert(it, 1000); // 3 1000 2 1 1 2 3 a.insert(it, 2000); // 3 1000 2000 2 1 1 2 3 print(a); it = a.begin(); it++; cout << "*it : " << *it << '\n'; a.erase(it); print(a); cout << "*it : " << *it << '\n'; a.pop_front(); a.pop_back(); print(a); cout << a.front() << " : " << a.back() << '\n'; a.clear(); return 0; } 다음과 같이 변경해서 출력하면, 3 1000 2000 2 1 1 2 3 *it : 1000 3 2000 2 1 1 2 3 *it : 2 2000 2 1 1 2 2000 : 2 이렇게 나오는데, insert와 erase 메서드 모두 매개변수로 전달받은 iterator에다가 각각의 기능을 실행한 뒤 그 다음 위치(그 다음 인덱스)를 가리키도록 바꿔주는 걸까요? 제 예상으로는 출력의 두 번째 *it 이 2000으로 나올 것으로 예상했는데, 2가 나와서 a.erase(it); 를 했을 때, it이 인덱스 1을 가리켜서 1000을 지우고 난 뒤, 그 다음 인덱스인 2를 가리키게 돼서 2를 가리키게 된 것으로 이해하였는데 맞을까요?? 마찬가지로 위의 insert도 인덱스 1 위치에서 삽입을 한 뒤, it은 인덱스 2를 가리키게 되고, 또 insert 해서 마지막엔 it이 인덱스 3을 가리키는 로직으로 이해하였습니다! 혹시 이러한 로직이 맞다면, list만 이런 것인지 다른 자료구조의 insert도 이런지 궁금합니다! 감사합니다.

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

백준 1722 교재 81 질문

해결됨

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

해당 문제를 푸는 알고리즘에 대해 더 자세한 설명이 필요할 것 같습니다. K번째 순열 출력할때, 왜 k와 (n-1)!를 비교하는지 이해가되지 않습니다.

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

21-8 layout 키워드 : 레지스터 개수 파악

해결됨

OpenGL 쉐이더 (2) shader 3D 그래픽스 - 프로그래머블 파이프라인, 기하학 기초, 삼각형 출력

안녕하세요 1) layout으로 로케이션 위치의 값이 하드웨어 스펙과 일치해야할 것 같은데요, 하드웨어 스펙의 어떤 부분을 봐야하는지 궁금합니다 2) 로케이션을 지정해야하는 실무 케이스가 궁금합니다..! 어떤 식으로 사용하는지 궁금해서요! 감사합니다..!

  • c++
  • OpenGL
  • glsl
TaengE 댓글 1 좋아요 0 조회수 205

빌드 하면 MSB3073 -WaitMutex -FromMsBuild 에러가 발생합니다!

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동

올려주신 코드를 빌드해보려 해도 MSB3073 -WaitMutex -FromMsBuild 에러가 발생합니다. 혹시 언리얼과 연동하기전에 기본적으로 해야할 설정이 있나요?? 비주얼스튜디오 인스톨에서 SDK와 언리얼 관련 내용은 다 다운로드 하였습니다. 언리얼 설정 시 기본 설정이 있다면 알려주시면 감사하겠습니다 ㅠㅠ

  • c++
  • unreal-engine
  • windows-server
댓글 1 좋아요 1 조회수 722

교안 84P sort(), comp 관련 질문

미해결

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

교안 84p 코드입니다 #include<bits/stdc++.h> using namespace std; vector<pair<int, int>> v; bool cmp(pair<int, int> a, pair<int, int> b){ return a.first > b.first; } int main(){ for(int i = 10; i >= 1; i--){ v.push_back({i, 10 - i}); } sort(v.begin(), v.end(), cmp); for(auto it : v) cout << it.first << " : " << it.second << "\n"; return 0; } sort()함수 동작과정이 머리로는 생각이 안나서 검색해보니 퀵정렬 방식으로 동작하는거 까지는 알았습니다 근데 cmp가 들어가면서 어떻게 동작되는지는 구조가 안떠오르는거 같습니다 정리하자면 bool cmp()함수가 벡터 v에서 어떻게 동작하는지, return a.first > b.first가 뭐를 의미하는지 첫질문이라 질문이 명확하지 않을수도 있을거 같습니다 ㅠㅠ

  • c++
  • 코딩-테스트
오늘아침딸기 댓글 2 좋아요 1 조회수 255

벡터 구조체 이터레이터 질문

해결됨

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. #include <bits/stdc++.h> using namespace std; struct Point { int y, x; }; bool cmp(const Point &a, const Point &b) { return a.x > b.x; } vector<Point> v; int main() { for (int i = 10; i >= 1; i--) { v.push_back({i, 10 - i}); } sort(v.begin(), v.end(), cmp); for (auto it : v) cout << it.y << " : " << it.x << "\n"; return 0; /* 1:9 2:8 3:7 4:6 5:5 6:4 7:3 8:2 9:1 10 : 0 */ } 질문드립니다 해당 vector는 Point를 기반으로 만들어진 벡터임을 알겠는데 v.begin()은 이터레이터를 반환하잖아요?? (주소값 반환) *v.begin()로 주소안의 값을 확인하려했는데 되지 않아 아마 struct 변수가 2개라 무엇을 기준삼지 않아 오류가 나는거같은데 혹시 값 반환하는 방법이 있을까요? 제가 이해한 내용이 틀렸다면 어떤식으로 이해해야하나요??

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

피보나치 수열 문제

미해결

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

이렇게 만들었는데 평가해주실 수 있나요? 수정사항 부탁드려요,

  • c++
김정환 댓글 1 좋아요 1 조회수 354

포인터 관련 질문

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

안녕하세요 포인터 기초 #1, #2 들으면서 궁금한게 생겼습니다. 전역 변수를 사용하면 쉽게 처리할 수 있는 부분들인거같은데 왜 굳이 어려운 포인터를 사용하는지에 대한 이유를 알고 싶습니다.

  • c++
gstk0009 댓글 1 좋아요 0 조회수 196

강사님과 조금 다른방식으로 풀었는데 왜 틀릴까요??

미해결

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

저는 강사님과는 반대로 배열을 1로 다 채운다음 받은 정사각형 만큼 0으로 바꾸었는데요 어디서 잘못되어서 문제가 풀리지않을까요? ㅠㅠ #include <bits/stdc++.h> using namespace std; #define y1 aaaa int adj[104][104], visited [104][104]; vector<int> v; int n,m,k,x,y,nx,ny,res,x1,x2,y1,y2; const int dy[] = {-1, 0, 1, 0}; const int dx[] = {0, 1, 0, -1}; int dfs(int y,int x){ visited[y][x]= 1; int cnt=1; for(int i=0;i<4;i++){ ny = y +dy[i]; nx = x +dx[i]; if(nx<0||ny<0||ny>=m||nx>=n)continue; if(visited[ny][nx]==0 && adj[ny][nx]==1){ cnt+=dfs(ny,nx); }else{ continue; } } return cnt; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> m >> n >> k; fill(&adj[0][0],&adj[0][0]+m*n,1); for(int i=0;i<k;i++){ cin >> x1 >> y1 >> x2 >>y2; for(int x = x1;x<x2;x++){ for(int y = y1; y<y2; y++){ adj[y][x]=0; } } } for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ if(visited[i][j]==0 && adj[i][j]==1){ res++; v.push_back(dfs(i,j)); } } } sort(v.begin(),v.end()); cout << res << endl; for(auto z: v){ cout << z << endl; } return 0; }

  • c++
  • 코딩-테스트
준호 댓글 2 좋아요 0 조회수 346

교안 16페이지

해결됨

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

m2 맥북에어 사용자인데 cd /Library/Developer/CommandLineTools/usr/include 로 해서 들어가는 거까진 했는데 여기서 mkdir bits를 하니 permission denied 가 떠서 접근권한 문제인거 같은데 어떤거를 변경해야 할 지 몰라서 질문합니다.

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

링킹 에러 관련하여 제가 이해한 것이 맞는지 궁금합니다.

해결됨

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

빌드를 하게 되면 .cpp 파일끼리 서로 알게 되는 것으로 알고 있었는데, 선언과 정의를 분리했다고 해서 이전의 내용과는 다르게 추가적인 작업을 해 줘야 하는 것이 이해가 잘 가지 않아 다른 분들 질답글도 찾아보고 제 나름대로 생각해 봤는데, 아래 내용이 맞는지 확인 부탁드립니다. 빌드 시 각 .cpp 파일을 컴파일 하며 메모리를 잡고, 그 이후에 링킹을 진행한다. main 에서 인스턴스 my_array 에 대해 print() 를 호출하려면 my_array 선언 시 템플릿 인자로 넘겨주었던 데이터 타입과 일치하는 print() 의 body가 메모리에 잡혀있어야 한다. 어떤 데이터 타입에 대한 print() 를 메모리에 잡을지 알아야 하는 것이 관건이기에, 선언과 정의가 모두 헤더 파일에 위치한 경우에는 문제가 없다. 해당 헤더 파일을 include하는 .cpp 파일을 컴파일하면 해당 .cpp 파일 내에서 템플릿 인자로 사용되는 데이터 타입에 대한 인스턴스가 메모리에 잡히기 때문이다. 하지만 선언과 정의를 분리한 경우 print() 의 body가 위치한 .cpp 파일과 템플릿 인자를 통해 클래스를 사용하는 main 은 링킹이 되어야만 서로에 대하여 알 수 있는데, 정작 링킹 시점에서는 main 내에서 사용하는 특정 데이터 타입에 대한 멤버 함수의 메모리가 잡혀있지 않은 상태이므로 링킹 에러가 발생하게 된다. 따라서 explicit instantiation 으로 미리 특정 데이터 타입에 대한 print() 의 메모리를 할당 받도록 하면 링킹 시점에서는 주어진 템플릿 인자에 맞는 함수가 메모리에 위치하게 되어 문제가 해결된다. 이렇게 이해했는데 이게 맞는 걸까요...?

  • c++
durams 댓글 1 좋아요 1 조회수 274

6-B 질문있습니다.

미해결

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

http://boj.kr/28d3e04e1fe9450c8b2adb485cb92e0c 위처럼 이진탐색을 재귀로 구현하여 풀었는데 지피티 + 지니 다 써도 어디에서 예외가 발생하여 틀리는지 모르겠습니다.. 강사님 어디가 틀린것이고 자신이 짠 코드가 어디가 잘못됬는지 잘 모르겠을 때 어떻게 분석할 수 있는지도 궁금합니다..

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

3-D 반례 질문드립니다.

미해결

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

안녕하세요 선생님. 예제와 커뮤니티의 반례들은 모두 통과하는데, 백준 2%에서 오답으로 처리되어 질문드립니다. 불이 시작되는 부분부터 BFS를 통해 표시를 해두고, J를 dfs로 움직이게 하는 로직으로 구현했습니다. http://boj.kr/8202d9f54d6b45e489a6888088d047e1

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

6-K 문제는 반드시 역추적하는 방법으로만 풀 수 있나요?

미해결

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

이중 백터를 만들어서 수열을 저장하는 저장하는 방법을 사용했는데.. 정답은 잘 나오는 거 같은데 메모리 초과가 뜹니다 ㅠㅠ 이 코드를 개선하여 통과하기는 어려울까요? 다른 풀이들도 보니 역추적 방법으로만 풀더라구요 시험이라고 생각하면, 역추적 아이디어를 번뜩 떠올리기는 힘들 수도 있다는 생각도 드네요.. #include <bits/stdc++.h> using namespace std; int N, tmp, cnt; vector<int> v; vector<vector<int>> answer(1000001); int binary_search(int num){ long low = 0, high = v.size() - 1; while(low <= high){ long mid = (low + high) / 2; if(v[mid] == num){ return mid; } else if(v[mid] >= num){ // 배열의 값이 더 크다. 줄여야 한다 high = mid - 1; } else{ // 배열의 값이 더 작다. 늘려야 한다 low = mid + 1; } } return low; // 배열보다 이상인 인덱스 리턴 } int main() { ios_base:: sync_with_stdio(false); cin.tie (NULL); cout.tie (NULL); cin >> N; for(int i = 0; i < N; i++){ cin >> tmp; if(v.empty()){ v.push_back(tmp); answer[0].push_back(tmp); continue; } if(v.back() < tmp){ v.push_back(tmp); cnt++; if(i > 0){ answer[cnt] = answer[cnt-1]; answer[cnt].push_back(tmp); } } else if(v.back() > tmp){ int idx = binary_search(tmp); v[idx] = tmp; if(idx > 0){ answer[idx] = answer[idx-1]; answer[idx].push_back(tmp); } else{ answer[0].clear(); answer[0].push_back(tmp); } } } cout << v.size() << "\n"; for(int i = 0; i < answer[v.size()-1].size(); i++){ cout << answer[v.size()-1][i] << " "; } }

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

3-I 숨바꼭질5 26번 라인 visited 값 할당 부분 질문 있습니다.

미해결

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

선생님 안녕하세요 ! 숨바꼭질 5번 26번 라인에 질문이 한 가지 있습니다. 기존에 올라온 질문들을 보면서 visited를 2차원 배열에 처리하여 홀/짝을 구분해야 한다는 것과 qSize를 활용하는 로직은 이해가 됐습니다. 그런데 26라인의 부분이 이해가 잘 되지 않습니다. visited[turn % 2][nx] = visited[(turn + 1) % 2][x] + 1; 왜 (turn+1)%2 + 1 을 기준으로 turn%2 에 값을 할당하는지 잘 모르겠습니다. bfs 로직에서 visited[next]에 값을 할당 할 때 here을 기준으로 +1을 하여 next를 할당하는데 (turn+1)%2 + 1 을 기준으로 할당한 것이 잘 이해가 안 됩니다. 항상 감사합니다. 새해 복 많이 받으세요!

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

코드 clone 문의

미해결

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

현재 따라배우는 c++ 수강중인데, 선생님이 작성하신 코드는 어디서 clone 할 수 있나요 ? 선생님 github이나 질문 도우미분 github에는 없어서 여쭤봅니다.

  • c++
궁패 댓글 1 좋아요 1 조회수 181

3-D 메모리 초과가 나는 이유에 대하여 궁금합니다.

미해결

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

3-D Fire! 다음 코드 제출시 메모리 초과가납니다. 혼자 생각해봐도 고민이 해결되지않아 질문 올립니다. 코드: http://boj.kr/7b447402e3e04302bdc04ebb1e2c0105 좋은 강의 감사합니다.

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

2-E 질문있습니다!

미해결

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

http://boj.kr/982be70c6d1e4cd5bfcbf7f36bf6d7c8 큰돌님 풀이만큼 구현하기엔 아직 실력이 부족한듯하여, 우선 부딪혀보았습니다. 풀어는 보고 싶어서, 정말 단순하게 4분할 후 배열 생성하고, 전수 검사하고, 서로 다른 요소가 있다면 다시 재귀를 돌리는 식으로 구현해보았는데 어떤 문제가 있는 걸까요 ㅠ??

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

[ 02.+Protobuf과+언리얼+연동 ] Protobuff빌드 에러가 납니다

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동

>libprotobuf.lib(reflection_ops.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort 1>libprotobuf.lib(text_format.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort 1>libprotobuf.lib(dynamic_message.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort 1>libprotobuf.lib(any.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort 1>libprotobuf.lib(wire_format.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort 1>libprotobuf.lib(descriptor.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort 1>libprotobuf.lib(extension_set_heavy.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort 1>libprotobuf.lib(map_field.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort 1>libprotobuf.lib(arenastring.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort 1>libprotobuf.lib(message_lite.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort 1>libprotobuf.lib(generated_message_reflection.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort 1>libprotobuf.lib(message.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort 1>D:\UnRealProject\MMO\S1\Binaries\Win64\UnrealEditor-S1.dll : fatal error LNK1120: 1개의 확인할 수 없는 외부 참조입니다. 소스 그대로 받아 빌드를 했는데 에러가 나네요

  • c++
  • unreal-engine
  • windows-server
댓글 1 좋아요 1 조회수 911

2-F 질문있습니다.

미해결

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

http://boj.kr/a301ab703f224734996c1f3bf87bf454 강의와 비슷한 원리로 슬라이딩 윈도우로 풀어봤습니다. 간단한 것 같은데 어디서 반례가 발생하는 걸까요?? 도무지 해결이 되지 않아 질문 올립니다!

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

인기 태그

인프런 TOP Writers

주간 인기글