묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.
https://www.acmicpc.net/source/103675909코드는 다음과 같습니다. 어떤 부분에서 반례 상황이 생기는지 파악이 잘 되지 않는 것 같습니다.제 로직은 문자열이 괄호가 아닐때는 넘어가고괄호일때는 짝을 지어서 맞는지 체크하는 로직입니다.+ 해결완료
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2주차 개념 #4-2. 인접행렬 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. #include <bits/stdc++.h>using namespace std;const int V = 10;bool adj[V][V];bool visited[V];void go(int from) {visited[from]=1;cout << from << " ";for(int i=0;i<V; i++) {if(visited[i]) continue; //이미 방문된건지 확인if(adj[from][i]) { //방문x라면 현재 from과 연결된 노드인지 확인go(i);}}return;}int main() {adj[1][2]++; adj[1][3]++; adj[3][4]++;adj[1][2]++; adj[1][2]++; adj[1][2]++; for(int i=0;i<V;i++){for(int j=0;j<V;j++)if(adj[i][j]) {go(i);exit(0);}}return 0;} main()내부 이중 for문의 역할이 재귀와 중복된다고 생각이들어 if문 성립하면 바로 exit(0) 시키고( go()한 번 호출하면 연결된 모든 노드를 재귀적으로 다 순회하기때문에 이중 for문으로 go()를 또 호출할 필요가 없다고 생각하였습니다) , main()내부의 visited()==0도 재귀 내부에서 검사하고 있기에 없어도 될 것 같다고 생각하여 지워보았습니다.방금 말씀드린대로 코드를 수정한것이 제가 올려둔 코드인데, 이렇게 해도 출력이 1,2,3,4가 나오는거보면 정상적으로 순회가 되는듯한데 , 혹시 연결된 컴포넌트 하나만 순회하는게아니라 모든 연결된 컴포넌트를 방문해야하는건가요??Q1. main() 내부의 visited[j]==0 이 꼭 필요한 이유,Q2. 그리고 main()에서 go()한 번 호출후에 exit(0) 시키지않고 계속해서 go()를 더 호출하도록 코드를 짜는 이유가 궁금합니다.
-
미해결[나 혼자 레벨업] UE5 멀티플레이 게임 제작 Lv. 1 (Listen 서버 입문)
Event Destroyed와 차이
Event Destroyed에 Refresh Lobby UI를 연결해서 실행해봤더니 OnDestroyed_Event랑 동일하게 동작하던데 둘의 차이는 뭔가요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-A 문제풀이 후 궁금한 점이 생겨서 질문드립니다.
안녕하세요, 큰돌 선생님. http://boj.kr/3226e7f308a24b709b29f87617933056저의 일곱 난쟁이 문제 풀이입니다.저는 우선 강의 자료의 재귀 함수를 활용한 조합 코드를 응용하여 풀었습니다. 예제 출력이 오름차순으로 보이는 것을 감안하여main함수에서 새로 입력받는 9명의 난쟁이의 키에 대한 vector 정의와 sort를 추가했습니다.또한 9명 vector에서 7명만 뽑은 vector를 가지고 모든 키의 합이 100이 되면 출력하고 종료하도록 했습니다. 그렇게 해서 정답 처리는 되었습니다. 그런데 강의를 보니 선생님께서는 2가지 해답을 알려주셨고 그 2가지는 전부 저와 다른 답안이었습니다. 이러한 상황에서 어떻게 학습하면 좋을까요? 그리고 이럴 때 어떤 것이 더 좋은 코드인지 판별하는 것이 시간복잡도와 공간복잡도일까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
조합 재귀 풀이 확인 해주시면 감사하겠습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.백준 링크 : http://boj.kr/a8709cba062743bdb03033918da2f4a6안녕하십니까 선생님. 수업 잘 듣고있습니다.교안에 나온 재귀함수로 구현한 조합 방식으로 풀어봤는데 (9C7로 접근하였습니다.) 9C7로 푸는 경우에 이렇게 풀어도 될까요?? 또한 위의 풀이가 다행히 시간초과는 뜨지 않았는데 제 코드의 경우 comb() 재귀 호출에 대한 시간복잡도를 어떻게 구해야할지 잘 모르겠습니다..for문으로 factorial 구현하는 경우는 입력의 최대 크기로 시간복잡도를 구하고 위와 같이 순열,조합류의 문제는 입력의 갯수로 시간 복잡도를 구하는 것같은데, 이렇게 문제에따라 n을 최대 크기로 볼지, 입력의 갯수로 볼지 다르게 판단해야하는건가요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
함수별 시간복잡도
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하십니까.C++ 교안에 'sort()의 시간 복잡도는 O(nlogn) 이다.' 이런식으로 각 함수별 시간복잡도가 기재되어있던데, 코테에서 사용하는 함수가 상당히 많은데, 각 함수마다 시간복잡도 얼마인지 전부 외워야 하는건가요??
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
디버깅할때 메모리보는법 단축키가 뭐죠??
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 02:57부분 Exercise1번 k2디버깅할때강사님은 cpp/h 파일위에 메모리1창이 뜨면서메모리 볼 수있었는데이렇게 보려면 단축키가 뭘까요 ..?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-h 질문입니다.
http://boj.kr/5d86f747478c4edb9ba083e07ba355f3어떤 부분이 잘못되었는지 궁금합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 선생님. 시간 복잡도 4번 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.Q1. 다른 질문글을 확인한 결과1. cnt를 찍으며 여러가지 케이스를 도출한 다음 -> 2. (시간이 있다면) 점화식 만들고 / 일반적으로는 어림 잡아서 -> 3. 규칙을 찾아 식으로 만든 후 빅 오 표기법으로 표시한다이런 식으로 진행해야하는 것 같은데, 실제 코딩테스트에 들어가서도 이렇게 cnt를 찍어보며 실행 횟수를 측정할 수 있는건가요??또한 실제 코딩테스트 시험 치면서도 위의 과정으로 시간 복잡도를 구하는건가요??백준에선 출력을 확인해볼 수 없기도하고, 코딩테스트를 아직 한 번도 응시해보지않아 환경을 몰라서 여쭤봅니다.Q2. 만약 n=30인 경우 while문이 5번 실행됩니다. 위의 식에 30을 대입하면 5.906 이라는 소수가 나오길래, 의문이 생겨 여쭤봅니다.원래는 시간 복잡도가 인데 시간 복잡도는 얼마나 더 빨리 증가하냐 가 중요하니 내림 을 하든, 안하든 그 증가 속도는 동일하니까 위의 식을 으로 볼 수 있고, 이게 빅 오 표기법을 적용하면이렇게 된다. 이 논리가 맞을까요??
-
해결됨Windows System 프로그래밍
Critical Section과 SRWlock의 차이
Spin Count 초과 이후 스레드가 'Blocked' 상태에서 깨어나는 과정에서의 Critical Section과 SRWLOCK의 차이가 궁금합니다. 영천님의 LockTest 예제 코드를 이용하여 Lock을 선점한 스레드가 Lock을 해제하기 전에 Sleep() 코드를 추가한 상태에서 디버깅을 시작해보았습니다. (대기 중인 스레드의 Spin Count 초과 유도) 우선 두 경우 모두 락을 선점한 스레드가 락을 해제하면서 어떤 메모리 주소와 맵핑된 Thread ID를 읽어와서 내부적으로 NtAlertThreadByThreadId()의 인자로 넘겨주는것은 동일하였습니다. 하지만 Critical Section의 경우에는 LeaveCriticalSection() 내부에서 RtlpWakeByAddress()를 추가로 호출하고 대기중인 Thread ID를 얻어온 뒤 그 함수의 내부에서 NtAlertThreadByThreadId()를 호출하는 반면, SRWlock의 경우에는 ReleaseSRWLockExclusive() 내부에서 다른 함수 Call 없이 Critical Section보다는 보다 간소화(?)된 동작으로 Thread ID를 얻어오고 곧바로 NtAlertThreadByThreadId()를 호출하였습니다. 이걸보고 든 의문인데 영천님 블로그에 올라와있는 'Spin Count 도중 YieldProcessor() 관련 내용'을 제외하고 혹시 Critical Section과 SRWlock사이 성능 차이의 이유는 애초에 SRWlock은 Spin Count를 초과한 상태일때 ReleaseSRWLockExclusive()을 호출한 스레드에서 보다 간소화된 동작과 불필요한 함수 Call 없이 Thread ID를 얻어올 수 있도록 어떠한 정보(?)를 추가해준 뒤 Blocked 상태에 빠지게되는 등의 기능 때문이라고 봐도 될까요? 아직 근거 없는 추측이긴 합니다...
-
해결됨[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
B_TeleportToUserFacingExperience가 추가로 생성되지 않습니다.
동영상 보고 모두 따라서 했는데요. B_TeleportToUserFacingExperience가 한개만 맵에 존재하는데요.어디를 확인해봐야 할까요?
-
해결됨게임회사 취업완성 C++: 10년 기출로 한 번에 합격하기 (기본편)
심화편 수강 등록
안녕하세요기본편 가격 조정으로인한 심화편 수강 등록은 진행되었을까요?혹시나 누락되었나 싶어서 문의 남깁니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-I 문제 질문 드립니다.
안녕하세요 선생님, 이중 map을 쓰지 않는 방식으로 처리를 했는데 이렇게 하면 문제가 있을까요?https://www.acmicpc.net/source/103054900
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-P 질문입니다.
http://boj.kr/c6923d75287340519159bb2894c30d28이 코드에서 어떤 로직이 잘못되었는지 궁금합니다.
-
미해결[나 혼자 레벨업] UE5 멀티플레이 게임 제작 Lv. 1 (Listen 서버 입문)
C++ 로 포팅
안녕하세요! 항상 잘 보고 있습니다. 아직 강의를 다 끝내지는 못했지만 C++로 포팅하는 강의도 나오나요? 감사합니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동
패킷 보내는 두가지 방법 질문
// 입장 사실을 신입 플레이어에게 알린다. { Protocol::S_ENTER_GAME enterGamePkt; enterGamePkt.set_success(success); Protocol::PlayerInfo* playerInfo = new Protocol::PlayerInfo(); playerInfo->CopyFrom(*(player->playerInfo)); enterGamePkt.set_allocated_player(playerInfo); //enterGamePkt.releasse_player(); SendBufferRef sendBuffer = ServerPacketHandler::MakeSendBuffer(enterGamePkt); if (auto session = player->session.lock()) session->Send(sendBuffer); }이 부분에서 궁금한게 두가지 있습니다.1. 이부분에서 두가지 방법이라는게 이렇게 두가지가 맞나요?동적할당, 복사, set_allocated_player 이렇게 해서 sendbuffer하기or 동적할당, copy없이 그냥 player->playerInfo를 set_alloc 한 다음 sendbuffer 마치고 enterGamdPkt.release_player() 호출하기. 아래 코드처럼 정적할당된 enterGamePkt에 기본으로 있는 playerInfo를 mutable get해서 copy 하면 안되나요? 이렇게 하면 메모리는 신경안써도 될거같아서요.enterGamePkt.mutable_player()->CopyFrom(*(player->playerInfo));
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
mac에서 시작하기 관련
안녕하세요!강의를 듣기 전 교안을 보고 Mac에서 설치를 하는 중인데요.gcc설치, bits/stdc++.h관련 작업까지 마치고 cpp 파일 실행 중 터미널에서 컴파일 명령어를 실행시키니 계속 이런 오류가 나옵니다. 이러한 경우에는 어떻게 해결해야 할까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-Q 질문
안녕하세요! 문제 조건이 '웅덩이는 겹치지 않는다' 이기 때문에 현재와 다음 상태를 비교하여 코드를 짰는데 왜 틀린지 모르겠습니다 #include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N, L; cin >> N >> L; vector<array<int, 2>> ar(N); for (int i = 0; i < N; i++) { int s, e; cin >> s >> e; ar[i] = {s, e - 1}; } sort(ar.begin(), ar.end(), [](const auto& a, const auto& b) { return a[0] < b[0]; }); int ret = 0; int start = ar[0][0]; int end = ar[0][1]; for (int i = 0; i < N - 1; i++) { auto& cur = ar[i]; auto& next = ar[i + 1]; if (next[0] - cur[1] >= L) { int diff = end - start + 1; ret += diff / L; if (diff % L != 0) ret++; start = next[0]; end = next[1]; } else { end = next[1]; } } int diff = end - start + 1; ret += diff / L; if (diff % L != 0) ret++; cout << ret << "\n"; return 0; }
-
미해결실전! 언리얼 소울라이크 개발: A to Z
C++ 생성자 값 관련 질문입니다.
2장 강의에서 생성자에서 이것저것 값을 변경했었는데 (bUseController 등) 이게 적용이 안 됩니다. 우선순위가C++ 생성자 값 < 블루프린트 디테일 패널 설정값인 건지 블루프린트 디테일 패널에서 직접 체크 표시가 되어 있는 기본값이 유지가 됩니다. 막상 카메라 위치 조절 같은 건 적용이 되는데 뭐가 문제인지 잘 모르겠습니다. 첨부한 사진입니다.LOG를 띄워서 확인을 해봤는데, 생성자에서는 분명 false로 들어간 값이, BeginPlay가 실행되니까 블루프린트 디테일 기본 값인 true로 자동으로 바뀝니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
풀이 코드 질문
안녕하세요1325번 문제 풀이 중 제 코드에서 잘못된 부분을 찾고 싶어 질문드립니다. http://boj.kr/98142efdf609498d86b6cffc1947dee5 testcase.ac 및 몇 개의 반례도 넣어봤는데 못찾겠습니다. 어디가 왜 틀렸는지 궁금합니다. 항상 강의 잘 보고 있습니다. 감사합니다.