묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-H 하나의 문자를 입력 받을 때 런타임 에러
안녕하세요, 큰돌님.http://boj.kr/f7198ad0aa0740abb6a3d6f9cb33c43e2-H 에서 입력 받은 s가 "a" 같은 하나의 문자일 때 런타임 에러가 떴습니다. 계속 수정하다 보니 모음 or 자음 3개 연속 조건 부분의 코드 문제인 것 같았습니다. for(int i = 0; i < s.size() - 2; i ++)그래서 s가 하나의 문자일 때를 나눠서 계산하였습니다. // s가 문자일 때 if(s.size() == 1) 이렇게 하니 맞긴 했는데 코드가 너무 난잡해진 것 같습니다...기존 방식의 런타임 에러의 이유제 코드보다 더 좋은 해결 방안이 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2Q 질문 있습니다!
안녕하세요 큰돌님!2Q 를 풀다가 반례를 못찾겠어서 질문드립니다!https://www.acmicpc.net/source/90805248제가 제출한 코드인데, 큰돌님의 풀이보다 복잡하고 비효율적인 것은 알지만 이 풀이가 왜 틀렸는지 알고싶어서 여쭤봅니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
스택만을 이용한 풀이
선생님의 풀이를 보고 이건 진짜 못떠올릴 것 같은데? 라는 생각이 들었습니다.배열에 마킹을 하면서 푸는 풀이는 떠올릴 수 있을 것 같은데, 스택만 이용한 풀이에서 -1을 넣어서 풀이하는 방식은 정말 감탄이 나오네요. 저도 스택만을 이용하는 비슷한 풀이를 떠올려서 '((()))'가 6이 나오게 하는 방법은 고안을 했는데 '((()))()'가 8이 되게 하는걸 처리하기가 너무 어렵더라구요. 하지만 -1을 넣어두면 전부 처리가 되네요.그리고 올바르지 않는 문자열이 오면 그 인덱스를 넣어주면 -1을 넣은 것과 동일하게 뒤의 문자열도 판별할 수 있다니...이 풀이를 보고 이런 아이디어는 정말 못 떠올릴 것 같다는 생각이 들었습니다. 이런 아이디어를 잘 떠올리기 위해서 어떻게 연습하면 좋을까요?
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동
워커스레드가 1개일 때 가장 빠를 수 있을까요?
루키스님 안녕하세요?C# 서버에서 넘어와서 CPP 서버 공부하고 있습니다. 스트레스 관련해서 이해가 안되는 부분이 있어 질문 드리게 되었습니다. 제가 스트레스 테스트를 한 방법은 recvCount, sendCount 변수에 ++하여 1초에 1번 출력하는 방식으로, '개략적으로' 카운트가 되는지 테스트하고 있습니다.C# 서버에선 C_Move패킷을 각 클라이언트가 0.25초마다 서버로 보내서 100명의 더미클라이언트로 치면 서버에서 400번 Recv, 40000 Send(브로드캐스트이므로) 정도로,300명 정도까지 Move 패킷을 처리할 수 있는 수준으로 부하테스트가 되었습니다. 근데 CPP IOCP 서버에서 워커 스레드는 컴퓨터 스레드 개수에 맞게 하는게 적당하다고 하셨고, 실제 배포하신 자료에도 워커스레드는 5개를 정해주셨습니다 (저는 핵사 코어 컴퓨터를 사용 중입니다) C#과 마찬가지로 더미 클라이언트.가 C_Move 패킷을 보내고 count 변수에 ++하면서 보고 있는데, 워커 스레드가 오히려 1개일 때 월등히 작업이 빠릅니다. 스레드 1개는 300명 내외까지 가능하지만, 2개 이상부터는 100명도 버거운 수준이었습니다. 룸이 하나인 상황이어서 컨텍스트 스위칭 때문에 오히려 워커 스레드 2개부터 느릴 수 있는걸까요? 고민해봤는데 명확한 답이 안나와 질문 드립니다.
-
해결됨삼각형의 실전! CMake 초급
-G 명령으로 Xcode 생성 할때 오류가 발생합니다.
제가 맥에 대해서 거의 문외한 이어서. 발생 한 문제 원인을 잘 찾지 못하겠네요.hello-cmake 폴더에서 cmake -G "Xcode" -B build-xcode . 명령을 수행 하니 아래와 같은 오류가 발생 했습니다.-- The C compiler identification is unknown-- The CXX compiler identification is unknownCMake Error at CMakeLists.txt:5 (project): No CMAKE_C_COMPILER could be found.CMake Error at CMakeLists.txt:5 (project): No CMAKE_CXX_COMPILER could be found. "Unix makefiles" 는 정상적으로 만들어 졌습니다.Xcode 를 한번도 실행 한적이 없어서 발생 한 문제 인가 해서 최신 버전으로 업데이트 하고. hello world 프로젝트 만들어서 빌드 까지 해보았습니다. 이것과는 관련 없는것 같고요.hello-cmake 폴더는 깃허브에서 다운 받은 것 입니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3- k 시간복잡도
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 정해를 보며 복습중인데 while 문을 통틀어 NxM 맵을 탐색하니 시간복잡도는 O(NxM)이 맞나요?while(true){ if(move_swan()) break; water_melting(); waterQ = water_tempQ; swanQ = swan_tempQ; Qclear(water_tempQ); Qclear(swan_tempQ); day++; }
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 어떤 반례가 있는지 모르겠습니다
http://boj.kr/33d85a5593ae445392cb5242ad169a89
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-V 누적합 질문
안녕하세요!!누적합 공부하면서 좀 헷갈리는 부분과 예시코드랑 다른 부분이 있어서 이 두개에 대해서 질문하려고합니다.http://boj.kr/88f78b9449fb462e99bbed15e9875b5f이게 제가 작성한 코드인데요,피자가원형이고, 예를 들어 7,2,2,2,1 이 있다고 치면 확장해서 7,2,2,2,1,7,2,2,2,1 이렇게 만드는 과정이 2*m 즉 2배 확장하는걸로 이해했는데요, (2*m)-1 만 확장해도 상관은 없는거죠? 선택할 수 잇는 시작점의 마지막 위치가 1이고 그 뒤로 넘어가 7을 선택하게되면 결국 맨 처음 선택했던 시작점과 동일해지기 때문에 이런것같은데, Chatgpt를 통해서 의견을 묻는데 반드시 2*M 의 구간확장이 필요하다해서 의미가 있나 싶어 질문드립니다.또한 map에다가 누적합들을 더하는 과정이 예시 코드에서는interval개를 선택할거고, start지점을 interval과 같게 설정하는 부분이 잘 이해가 안됩니다. 저는 i~j까지의 합을 size만큼 펼쳐가면서 더햇는데요, 예시 코드에서 start를 꼭 interval로하는 이유가 있나요? 물론 코드가 정상적으로 동작해서 같은 결과를 내는건 알겠는데, start = 1; start<= n 으로 하지 않는 이유가 궁금합니다.
-
미해결CUDA 프로그래밍 (1) - C/C++/GPU 병렬 컴퓨팅 - CUDA 커널 kernel
CUDA Samples 없음
- 출장이 잦아서, 답변에 시간이 좀 걸릴 수도 있습니다. 양해 바랍니다. v12.8인데 samples 파일이 없습니다.- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-H 질문드립니다.
안녕하세요, 큰돌님이 강의에서 설명해주신 코드에서 한가지 사소한 질문이 생겨 글 남기게 됐습니다.같은 글자가 연속으로 나오면 안되는 조건을 위해서 큰돌님께서 prev를 -1로 초기화 하기 i가 0일 때 제외하고 prev와 현재 idx를 비교해서 같으면 flag = 1 이 되도록 하셨는데요.처음에 코드를 봤을 때 prev를 s[0]이 아니라 일부러 -1로 두신 이유를 저는 i >= 1 조건을 생략하기 위해서 혹시라도 i가 0 일때의 idx와 prev가 같은 경우가 생기지 않도록 해서 i = 0일 때 조건을 확인해도 어차피 prev == idx가 거짓이 되도록 한걸로 이해했거든요.(저도 비슷하게 prev를 'a'-1로 초기화하고 for문에서 i=0을 skip하지 않고 다 확인하도록 했습니다. http://boj.kr/8e848001c5b443cd85c5a78d65af69c7)하지만 강의에서 말씀하신 건 첫번째 i=0일때 비교를 피하기 위해서 i>=1을 넣었다고 하셔서 prev를 s의 첫번째 원소가 아닌 -1을 초기화 하는 부분과 i = 0 일 때 prev와 idx를 비교하는 걸 넘어가는 부분이 상충되는 부분이 있어 질문드렸습니다.
-
해결됨MFC Windows 프로그래밍 - 기본
이벤트 메시지 루프의 '응답 없음'에 대하여
안녕하세요 선생님.강의를 듣다가 질문이 생겨서 이렇게 글을 작성하게 되었습니다. GUI 응용 프로그램에서 사용자 입력에 대한 처리가 먹통이 되는 경우를 '응답 없음' 상태라고 한다고 하셨습니다. 실제로 프로그램들을 사용하며 간혹 겪어보기도 하였고요... ㅎㅎ그런데 윈도우즈는 어떻게 해서 이 '응답 없음' 상태를 감지하여 먹통이 된 프로그램 창 위에 응답 없음 다이얼로그를 띄워주는 것인지 궁금해졌습니다.주기적으로 실행중인 응용 프로그램들을 감시하는 일을 하는 백그라운드에서 운영체제 서비스라도 있는 것인가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-T를 풀면서 생긴 궁금증 질문입니다!!
안녕하세요, 5-T를 풀면서 call by reference에 대한 궁금증이 생겨서 질문드립니다.http://boj.kr/eb2dea066fa343d7b20333031804dfe9해당 문제를 이렇게 제출하여 정답처리 받았는데요,for(auto &k : sharkV){ pair<int,int> newP = k.move(); visited[newP.first][newP.second]++; }이때 k는 구조체 Shark구요, for 범위기반 loop에서 &k 로 받아서 k.move()에서 해당 구조체의 좌표를 변경시키는데요, 여기서 auto&k 대신 auto k를 사용했다면, sharkV의 주소를 참조받아 전달한게 아닌, 복사한 새로운 k라는게 생겨서(깊은 복사?), 이를 변경해도 원본에는 영향이 없는건가요?그리고 Call by value던 reference던, 인자로 넘겨진 변수 이외의 변수가 변경되는 동작이 실행된다면 ( ex) 범위기반 for loop에서 ret을 더하는 행위 ) 이는 참조로 받거나, 값으로 넘긴게 아닌 해당 변수가 직접 들어온것이니 변경된다고 보면 될까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2309 일곱난장이 문제
http://boj.kr/fb2575ddf20441c4bde4df5e41af3735 어디가 틀렸는지 모르겠습니다 ㅠㅠ
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
테스트 파일 exit_coe_1, time_limit_exceeded 질문
환경은 윈 11입니다.2번 문제의 경우이런 식으로 exit_code_1이 뜹니다.소스코드는int main() { int n, m, sum = 0; cin>>n>>m; for (int i = n; i <= m; i++) { sum += i; if (i == n) { cout<<i; } else { cout<<" + "<<i; } } cout<<" = "<<sum; return 0; }이렇게 짰습니다.직접 입력하는 테스트 시에는 동일한 문자로 보입니다.3번 문제의 경우이런식으로 time_limit이 걸립니다.소스코드는int main() { int n = 0; int sum = 1; cin>>n; cout<<1; for (int i = 2; i <= n / 2; i++) { if (n%i == 0) { sum += i; cout<<" + "<<i; } } cout<<" = "<<sum; return 0; }이런 식으로 짰습니다.두 문제 간단한 문제라 모두 오류가 나거나 시간 문제가 일어날 이유는 없다고 생각합니다.혹시 비슷한 상황 겪으신 분 계시거나 강사님이 해결 방법 아실까요? 1번 문제에선 테스트 통과 잘된 것으로 보아 string쪽에서 문제가 있을 것으로 예상됩니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
강의 학습 방법 문의
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 선생님 안녕하세요 코테를 처음 시작하는 걱정이 아주 많은 학생입니다. 혼자서 시작하는 건 너무나 오랜 시간이 걸릴 것 같고 당장 앞에 놓인 과제가 너무 무겁고 두려워 이렇게 선생님의 강의를 듣기로 결심했습니다.10주차라는 선생님의 강의만 쫓아가면 코테 합격 가능할까요? 아니면 별도로 시간을 들여 따로 공부를 또 해야할까요? 직장을 다니며 많은 시간을 투자하기에 어려움이 있어 질문 드립니다.저는 JAVA 개발자입니다. C++로 문제를 푸는게 이직을 하는데 문제가 되지 않을까요? 감독관이 C++로 푸는 걸 마이너스 요소로 생각할까 걱정이 되어 질문 드립니다.선생님이 주신 교안 및 문제 해설 등의 자료는 어떻게 활용하는 것이 좋을까요? 아직 0주차 시작하는 단계입니다.긴 질문 읽어주셔서 감사합니다.열심히 해보겠습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-C memset 배열 초기화 질문-C memset 배열 초기화 질문
안녕하시렵니까제가 문제를 한번 풀어봤는데 memset으로 배열을 초기화 했을 때 초기화가 잘 안되는 것을 확인 했습니다아래 코드에서는 carcnt[2]부분 입니다혹시 제가 함수 사용에 있어 실수 한 부분이 있는지 왜 이런 일이 일어나는 것인지 궁금합니다아래 코드는 = {0, }를 사용해 통과한 코드이고 주석 부분 풀고 = {0, }부분 지워 주시면 문제의 코드가 나옵니다강의 재밌게 잘 보고 있습니다 감사합니다 ^^7http://boj.kr/5f431b3ae8254d5d9a978ec62d3ca827
-
미해결CUDA 프로그래밍 (4) - C/C++/GPU 병렬 컴퓨팅 - 행렬 matrix 곱하기
24-2 3중 for loop 개선책 이해가 가지 않습니다.
- 출장이 잦아서, 답변에 시간이 좀 걸릴 수도 있습니다. 양해 바랍니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 좋은 강의 감사합니다.3중 for loop 개선책 설명해주신 부분 이해가 가지 않아 질문드립니다.말씀하신건 A도 B도 C도 캐쉬 친화적으로 이동 한다고 말씀하셨는데 A배열은 아래로 움직이지 않나요? 물론 matmul-host.cpp 보다는 캐쉬 미스 확률이 좋아지겠지만 A배열의 인덱스 이동은 캐쉬 친화적인거 같지 않은데 강의에서는 A도 옆으로 움직인다고 하셔서 헷갈려서 문의드립니다.
-
미해결홍정모의 따라하며 배우는 C++
독립적인 함수 vs 종속적인 함수
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의에서 보여주신 것처럼 add라는 함수를 기반으로 다른 함수가 만들어지고, 그 함수를 기반으로 또 다른 함수가 만들어지고... 간단한 함수면 금방 찾겠지만, 복잡해지기 시작하면 디버깅이 굉장히 어려워질 것 같은데, 이런 경우는 어쩔 수 없는 것인지, 최대한 파일을 줄이고 독립적인 함수가 되도록 해야되는 것인지 궁금합니다.
-
미해결CUDA 프로그래밍 (4) - C/C++/GPU 병렬 컴퓨팅 - 행렬 matrix 곱하기
transpose-shared.cu 가 느린 이유에 대해서 질문 있습니다.
- 출장이 잦아서, 답변에 시간이 좀 걸릴 수도 있습니다. 양해 바랍니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요, 좋은 강의 감사합니다.transpose-shared.cu가 느린 이유에 대해 질문이 있습니다.강의 23-2에서는 X축으로 읽는 것이 아니라 Y축으로 메모리를 사용했기 때문에 느려졌다고 설명해 주셨습니다.보통 이런 경우, 이중 for문을 돌릴 때 메모리 공간 지역성(spatial locality)으로 인해 X축(연속된 메모리)으로 읽는 것보다 Y축(연속되지 않은 메모리)으로 읽는 것이 더 느리다고 알고 있습니다.하지만 이 transpose-shared.cu CUDA 예제에서는 각 스레드가 배열의 단 하나의 인덱스만 사용하므로,이중 for문에서 발생하는 문제라기보다는 이후 강의에서 설명해 주신 Bank Conflict가 발생해서 느려진 것이 아닐까 생각했습니다.제 생각이 맞는지 여쭤보고 싶습니다. 수정 및 추가 질문)챕터16강의 다시 보고 제 생각이 틀렸다는것을 인지했습니다.그럼 결국 데이터를 저장할때도 캐쉬 문제인것일까요?transpose-block.cu 는 캐쉬에 저장하고 한번에 flush가 가능하지만transpose-shared.cu 는 저장할때마다 캐쉬미스가 발생해서 매번 global memory에 접근해야하니 느려지는것일까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-O 관련해서 질문 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 선생님 이번 강의에서 LIS를 사용하라는 말씀을 듣고 문제를 다음과 같이 풀 수 있었습니다.http://boj.kr/cf757148c19742598fb6d6d56ebb1190정답은 되었지만 이 문제를 보고 생각했던 방향을 스케줄링이랑 그라디쪽을 계속 생각하며 어떻게 풀지 막막했습니다.근데 LIS라는 말씀을 듣고 바로 풀 수 있었습니다. 아직 LIS 문제인지 파악하는게 쉽지가 않아서 혹시 LIS 문제 더 추천해주시면 감사하겠습니다.