묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2 - D 입력질문드립니다.
안녕하세요.2583번 문제에서 예제가 왜5 7 3 0 2 4 4 1 1 2 5 4 0 6 2이렇게 받는지 잘 모르겠습니다ㅠㅠ그리고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++) { a[y][x] = 1; } } }cin 으로 x1 y1 x2 y2 받는 줄 아래에왜 x가 x2랑 엮이고 y가 y2랑 엮이는지 잘 모르겠습니다ㅠㅠ 문제 풀기전에 예제입력&예제출력이 왜 이렇게 나오나 먼저 좀 생각을 해보고 코드 작성하는데 한참을 들여다 봤는데 잘 이해가 안되니 도저히 감이 안와서 이렇게 여쭙니다.
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
비주얼 스튜디오 질문입니다.
루키스님께서 해주시는 강의 귀에 쏙쏙 들어와서 항상 감사의 말을 먼저 드립니다. 루키스님의 강의 중 터미널 창이 매우 깔끔하게 촘촘히 박혀있으신데 제 터미널창은 세로로 길쭉하여 결국 코드에 TILE뒤 << " "; 이런 식으로 억지로 띄워썼습니다.혹시 이 방법 말고도 다른 방법이 있으신지 견식을 여쭙고자 합니다.가르쳐 주신다면 정말 감사하겠습니다.
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
동적 객체 생성 전에 클래스 포인터의 멤버함수 호출
class TestClass{public: void Init() { cout << "CTestClass::Init()" << endl; } int mmmi;};int main(){ TestClass* pi = nullptr; pi->Init(); // 정상 실행 pi->mmmi = 10; // 에러} 안녕하세요. 강의 잘 듣고 있습니다.위와 같은 경우에 객체가 생성되지 않은 상태에서 멤버변수에 접근 되지 않는 건 이해가 가는데 함수는 호출이 정상적으로 됩니다. 설명 좀 부탁드립니다.
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
13번 0점...
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. #include <iostream>int arr[10];int main(){ //freopen("input.txt.txt","rt",stdin); char num[101]; int i; int tmp; int max = 0; int Smax; scanf("%s", &num); for(i=0; num[i]!= '\0'; i++) { tmp = num[i] - 48; arr[tmp]++; } for(i=0; i<10; i++) { if(arr[i]>=max) { max = arr[i]; Smax = i; } } printf("%d\n",Smax); return 0;} 왜 빵점만 나오는 거죠? 어디가 틀린 건가요ㅠㅠ?
-
해결됨[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
Select와 Overlapped의 차이에 대해 좀 헷갈리는 부분이 있습니다.
Overlapped 방식은 비동기 + 논블로킹 이고 이전 예제 WSASelectEvent를 이용한 예제는 동기 + 논블로킹 으로 이해 했습니다.Overlapped의 로직 흐름은 while문 진입 후 Event방식의 경우 WSARecv의 반환값이 SOCKET_ERROR일때 WSAGetLastError()가 WSA_IO_PENDING이라면 Sleep 혹은 WSAWaitForMultipleEvents으로 대기하다가 콜백방식이면 깨워서 처리, 이벤트방식이면 시그널되었으므로 이후 다음 코드 실행Select의 로직 흐름은 while문 진입 후 WSAWaitForMultipleEvents로 대기 후 시그널되면 인덱스정보로 세션의 위치를 알아낸 후 해당 세션의 소켓을 통해 NetworkEvent를 확인해서 Accept인지 Recv플래그를 통해 적절한 처리이렇게 정리하고 나니 결국 Overlapped는 Recv를 먼저 실행한 후 대기하는 것이고 Select는 대기한 후 Recv하는 것이구나 라는 생각이 들었고, 처음에 보여주신 블로킹/논블로킹, 동기/비동기에 관한 그림으로 볼 때 Select와 Overlapped 모두 Sync-NonBlocking과 같이 동작하는게 아닌가 하는 생각이 들었습니다. 왜냐하면 INFINITE로 두면 반환할때까지 Blocking 방식처럼 동작할 것이라고 생각했고, INFINITE가 아닌 Timeout을 주면 주기적으로 확인한다는 것이므로 Sync-NonBloking처럼 동작한다고 생각했습니다. 제가 생각한 것이 맞는지 궁금합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
강의교안 30쪽 getline 질문이 있습니다.
string bufferflush;getline(cin, bufferflush);이 부분에서 질문이 있는데요. 이 부분을 제가 이해하기로는 cin을 수행할 때 \n부분 전까지만 입력을 받고 변수에 할당한 후 \n은 그대로 cin 입력 버퍼에 남기 때문에 저걸 없애기 위해서 string bufferflush를 선언한 후 getline(cin, bufferflush)를 수행한다고 이해가 되는데요. 제가 알기로는 cin.ignore()도 입력 버퍼를 한 개 지우는 역할을 한다고 들었는데 그냥 cin.ignore()로 대체하면 두 줄짜리 코드를 그냥 간단하게 한 줄로 끝낼 수 있는데 이게 더 효율적이지 않나 싶어서 질문을 드립니다.
-
해결됨[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
C++ 프로그램 관련
대중적으로 C++를 공부할 때 비주얼 스튜디오를 사용하기도 하지만 Rider 프로그램도 있는 것으로 알고 있습니다. 개인적으로 인텔리제이를 선호하는 터이기도 하고, 언리얼 공부를 위해 C++를 공부하고 있는데, Rider를 사용해서 수강해도 되는 부분일지 궁금합니다.
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
22. 때때로 time limit
같은 코드인데, 한번은 array(배열)로, 한번은 vector로 두었습니다.array로 했을 때는 4번예제에서 time_limit이 났는데 vector로 했을 때는 다 success였습니다. 같은 경우엔 array가 더 빠른거 아닌가요? 왜 이러죠#include <iostream> #include <vector> int main(void) { int n, k, max, sum = 0; std::vector<int> tem(100001); scanf("%d %d", &n, &k); tem[0] = 0; for (int i = 1; i <= n; i++) { scanf("%d", &tem[i]); sum += tem[i]; if (i == k) max = sum; else if (i >= k) { sum -= tem[i - k]; if (sum > max) max = sum; } } printf("%d", max); return 0; }#include <iostream> int main(void) { int n, k, max, sum = 0; int tem[100001]; freopen("input.txt", "rd", stdin); scanf("%d %d", &n, &k); tem[0] = 0; for (int i = 1; i <= n; i++) { scanf("%d", &tem[i]); sum += tem[i]; if (i == k) max = sum; else if (i >= k) { sum -= tem[i - k]; if (sum > max) max = sum; } } printf("%d", max); return 0; }
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
포인터와 배열 기반 문자열과 둘의 차이에 대해
포인터와 배열 기반 문자열과 둘의 차이에 대해, 제가 이해한 것이 맞는지 확인 해 주실 수 있으신가요?항상 감사드립니다. [ 포인터 vs 배열 ]포인터를 이용한 문자열const char test1 = “Hello World”;*“Hello World”는 데이터 영역(.rodata)에 배열의 형태로 할당된다.포인터 test1은 원본 배열 첫 번째 요소인 ‘H’의 주소를 가진다..rodata에 존재하므로 문자열의 각 요소를 수정할 수 없다.배열을 이용한 문자열char test2[ ] = “Hello World”;미리 데이터 영역에 할당된 “Hello World”의 요소를 각각 복사하여 새로운 배열이 할당된다.배열 이름 test2는 복사된 배열 첫 번째 요소인 ‘H’의 주소를 가진다.복사된 배열이므로 문자열의 각 요소를 수정할 수 있다.결론, 포인터와 배열의 차이배열과 포인터는 본질적으로 다르다.배열의 이름이 포인터처럼 사용되지만, 포인터가 오직 어떠한 대상을 가리키는 고정 크기의 주소만 가지고 있는 반면, 배열은 이름이 포인터로 동작할 수 있을 뿐 본질은 변수의 모임이라는 여러 바구니로 이루어져 있기 때문이다.따라서 배열의 크기는 포인터와 달리 타입과 길이에 의해 달라진다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
pushback과 dy,dx 질문입니다.
안녕하세요.질문 하나가 있습니다.adj[0].push_back(1); adj[0].push_back(2); adj[0].push_back(3);만약 위 코드 처럼 push_back 해준다고 가정했을 때int dy[] = {-1,0,1,0}; int dx[] = {0,1,0,-1};위 dy dx코드를 해줄 필요가 없는건가요?연습할 때 .push_back(i)로 하다가 dfs bfs연습문제 풀 때 dy dx가 나와서 뭐지? 했습니다.어느 상황에서 맨위 코드블럭처럼 해줘야 하는지 아래 코드블럭처럼 하는지 잘 분간이 안되서 이렇게 질문드립니다.감사합니다. ps. 5 51 1 0 0 10 0 1 1 00 1 0 0 1이런식의 예제입력이 주어지면 push_back안 하고 dy dx만 해주면 되는걸까요?
-
미해결홍정모의 따라하며 배우는 C++
6:35 코드 질문
클래스 B 선언 부분에서, 생성자 선언후 빈{}는 무슨 용도인가요?? 아래 코드에서 17째줄 {} 입니다 #include <iostream>#include <string>#include <array>#include <limits>#include <vector>#include <algorithm>using namespace std;class B {private: int m_b;public: B(const int& m_b_in) : m_b(m_b_in) {}};class Something {private: int m_i; double m_d; char m_c; int m_arr[5]; B m_b;public: Something() : m_i(1), m_d(3.14), m_c('a'), m_arr{ 1, 2, 3, 4, 5 }, m_b(m_i-1) // 이게 member initializer. 물론 여기서 초기화 하고 20-22줄에서 다시 오버라이드도 가능 //m_i{1}, m_d{3.14}, m_c{'a'}로 하면 형변환이 안됨. 좀 더 엄격함. 자동으로 캐스팅이 안됨. { m_i = 2; m_d = 3.15; m_c = 'b'; } void print() { cout << m_i << " " << m_d << " " << m_c << " "; for (auto& e : m_arr) cout << e << " "; cout << endl; }};int main() { Something Some; Some.print(); return 0;}
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요. 강사님.이런 느낌으로 팰린드롬 변환을 구현해봤습니다.사실 문자열 최대길이가 50이라서 시간복잡도 문제는 없을거라 생각하는데요.삽입을 사용안하고 풀어보려고 했는데 reverse도 결국 O(N)이라서 유의미한 차이는 없는거 같습니다.실제로 중간 삽입, reverse도 중간부분을 뒤집는거라 같은 시간복잡도가 예상되는데 맞을까요?http://boj.kr/6889e519af6742b9a6cda67803fbf013
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8주차 개념 강의 중 질문입니다.
강사님 안녕하세요,8주차 개념강의 중 질문입니다.[알고리즘 강의] 8주차. 펜윅트리와 최단거리.. : 네이버블로그 (naver.com)강의 노트 웹페이지에 2번째 그림에서,"2~8 까지의 최소인덱스 3번째 4번째 6번째 인덱스만 비교해서 최소 인덱스를 반환" 이라는 말이 잘 이해가 안되어서요.그림상 파란 화살표 표시한 것이 3,4,6 인덱스를 의미 하는 것인지 그리고, 3,4,6째 인덱스를 비교한다는 것이 왜 필요한 것인지 궁금합니다.제가 이해한 것은 2~8 까지의 최소 인덱스는 Level 1 에 저장된 Index 3 만 확인하여 Index 3 에 위치한 "1" 이 최소값인 것으로 이해를 했거든요. 강의 노트 웹페이지에서 5번째 그림에서,파랑 노드를 만들면 된다고 갑자기 설명을 하시는데, (강의 3:03 구간)그림상 주황색 노드(3,4,10,11)의 의미, 파랑색 노드(1,2,3,4)의 의미에 대한 안내도 없고... 그림에 표시된 화살표도 어떤 연산이 수행되었고, 화살표로 연결된 두 노드의 관계에 대한 설명도 없어 이해가 되지 않습니다.관련 내용 상세 설명 좀 다시 부탁드리겠습니다.
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
40번 교집합 문제
#include <iostream> using namespace std; int main() { int i, j, tmp, a[30001],a1, b[30001],b2, c[30001], cnt=0; cin >> a1; for (i = 0; i < a1; i++) { cin >> a[i]; } cin >> b2; for (i = 0; i < b2; i++) { cin >> b[i]; } for (i = 1; i < a1; i++)//a { tmp = a[i]; for (j = i - 1; j>0 ; j--) { if (a[j] > tmp) { a[j + 1] = a[j]; } else { break; } //조건에 안맞으면 바로 밑으로 넘어가게 해야한다. } a[j + 1] = tmp; } for (i = 1; i < b2; i++)//b { tmp = b[i]; for (j = i - 1; j > 0; j--) { if (b[j] > tmp){ b[j + 1] = b[j]; } else { break; } } b[j + 1] = tmp; } for (i = 0; i < a1; i++) { for (j = 0; j < a1; j++) { if (a[i] == b[j]) { c[i] = a[i]; cnt++; } } } for (i = 0; i < cnt; i++) { cout << c[i]; } return 0; } 안녕하세요 선생님 제가 삽입정렬 방식으로 하고 코들르 구현하였는데 출력은 -로 나옵니다.어디서 잘못된거인지를 못찾겠어서 질문 드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-H 성곽문제 dfs 매개변수 중 cnt는 없어도 되는거 아닌가요??
이미 전역변수로 cnt를 선언 했는데 매개변수로 넣어서사용해야하는 이유가 있을까요? 다른 건 이해했는데 이부분은 어떤건지 궁금하네요
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
문자열 char와 char* 관련 질문입니다.
안녕하세요 강의 듣는 도중 궁금한 점이 생겨서 질문 드립니다. int BUF_SIZE = 100;char a[BUF_SIZE] = "Hello"char b[BUF_SIZE] = "World"; 1.strcpy나 strcat 같은 함수를 보면 char가 char* 형태의 매개변수가 될 수 있는 이유가a가 배열이기 때문에 배열의 시작주소를 인자로 넘겨주기 때문에 가능한건가요? 2.char형 변수는 데이터가 배열에 저장이 되기 때문에 복사가 이루어지면 그만큼 데이터를 복사하게된다고 생각이드는데실무에서는 용량이나 트래픽을 아끼기위해서 char* 나 const char* 를 사용하는 편인가요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 뭐가 틀렸는지 모르겠습니다.
예제는 정답이 맞는데, 제출하면 틀렸다고 나옵니다. 어디가 틀렸는지 모르겠습니다. http://boj.kr/b61061763b9a4449ab7c47ebf5a2d130감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
0주차 재귀함수
재귀함수를 사용하면 마치 DFS처럼 사용이되는데,f(4)에서 f(3)과 f(2)중 둘중 아무거나 먼저 호출되어도 상관이없는거 아닌가요? 어떠한 기준으로 f(3)이 먼저 호출되는지 궁금합니다..!
-
미해결C 와 C++ 을 동시에 배워보자 - 두들낙서의 C/C++
메모리 재할당 시 같은주소로 할당됨
68강을 수강하면서 코드를 작성하였는데 String s3("Hello");s3.operator=(s1);에서 분명히 기존의 strData의 메모리를 delete 하고 재할당하였는데 찍히는 주소가 계속 같게나옵니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
시간초과 문제
안녕하세요, 수강생입니다. 혹시 시간초과가 나서 혹시 제가 실수한게 있을까요..?https://www.acmicpc.net/submit/1940/62536370ㅜㅜ,,,