90번 심바문제 질문있습니다.
미해결
it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
69 ~70 번째 줄인 while (!Q.empty()) { Q.pop(); } res = tmp.dis; } 이 부분이 이해가 안됩니다. 왜 큐를 제거를 하는지 이전에 다 없어지지 않았나요? 그리고 dis를 하는이유도 궁금합니다. z로 설정을 다하셨는데 왜 갑자기 이렇게 나오는지....
- c++
- 코딩-테스트
173만명의 커뮤니티!! 함께 토론해봐요.
미해결
it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
69 ~70 번째 줄인 while (!Q.empty()) { Q.pop(); } res = tmp.dis; } 이 부분이 이해가 안됩니다. 왜 큐를 제거를 하는지 이전에 다 없어지지 않았나요? 그리고 dis를 하는이유도 궁금합니다. z로 설정을 다하셨는데 왜 갑자기 이렇게 나오는지....
해결됨
[게임 프로그래머 도약반] DirectX11 입문
제가 많이 부족한 편이라 실례가 안된다면 기본적인 질문 몇가지만 여쭤보겠습니다 1. pch에 넣는 헤더파일과 안넣는 헤더파일의 기준이 어떤건가요? 2. 함수 앞에 ::를 표시하고 구별하는건 어떤 것들만 해당하나요? 나머지는 강의 내용과 상관없는 질문입니다. 답변 안해주셔도 괜찮습니다 조잡한 3d 엔진을 만들고 c++ 게임서버와 데이터베이스 구축하여 연동하는 것까지 목표로 하고 있습니다 질문은 3. 게임 서버를 c++로 만들고 싶은데 Boost.Asio같은 라이브러리를 사용해서 만들면 난이도가 많이 높아질까요? 그리고 현업에서 서버를 만드는데 Boost를 사용하나요? 4. c++ 게임 서버에서 mysql과 연동할때 보통 Connector/C++를 사용하나요?
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
문제에서 string을 그냥 sort 하는 이유는 어차피 출력할 때 "067789"이렇게 앞의 0도 포함시켜서 출력하고 비교하는 모든 사이즈가 같기 때문에 때문에 문자열들을 기본 sort를 해도 상관이 없어서인가요?? 저는 정말 비효율적으로 코드를 짰지만 운이 좋아 코드가 통과 됐습니다. http://boj.kr/ac9a920879094f88b09537cf47a064af 큰돌님께 배운 조합을 이용하여 모든 경우의 수를 뽑아 놓고 해당 경우의 수를 전부 순열로 돌립니다. 그리고 canCmp라는 함수를 통해 부등호 비교를 해서 한번이라도 틀리면 해당 경우를 시도하지 않습니다. (1,2,3)을 뽑았으면 이것들의 부등호를 비교합니다. 틀리면 바로 다시 순서를 정해서 (1,3,2) 을 다시 위의 과정을 반복하고 통과될 경우 ret에 push를 해놓습니다. 기타 등등 문제가 많았습니다. string을 굳이 int로 바꿔서 해결하려다 메모리 에러(int의 구현범위 문제인 것 같아요) 등등이 나고 그냥 sort할 생각을 못해 bigger, smaller 라는 함수도 따로따로 만들었습니다. 이러다 큰돌님의 코드를 보면 정말 내가 비효율적이고 멍청하게 짰구나라는 생각 밖에 들지를 않습니다... 혹시 계속 문제를 풀다 보면 이렇게 짜는 일이 줄어들까요..? 한 문제를 푸는데 30분~1시간30분 정도 걸리고 코드에 대한 힌트를 백준에서 보고 다시 구현을 해봅니다. 그래도 못 풀겠으면 큰돌님의 영상을 보고 어떻게든 다시 내 코드를 살려보려고 하고 그래도 안되면 큰돌님의 코드를 최대한 이해하고 문제를 넘어갑니다. 이렇게 9월 중반까지 하루에 4문제씩 풀어서 강의를 마무리하려는 목표를 가지고 있습니다. 이런 학습 방식이다 보니 한 문제에만 최대 3시간 정도 투자를 하는 것 같습니다. 이렇게 문제를 푸는 것이 맞을까요? 풀다가 아닌 것 같거나 특정 시간을 넘어가면 답을 보는 게 더 효율적일까요? 한 문제를 너무 깊게 잡고 있는 것은 아닌가 싶어 질문드립니다! p.s 강의 항상 잘 듣고 있습니다. bfs, dfs 구현 조차 모르던 제가 이제는 이해하면서 구현을 할 수 있습니다. 좋은 강의 해주셔서 감사드리고 많은 질문에 항상 정성스럽게 답변 주셔서 감사드립니다! :)
미해결
홍정모의 따라하며 배우는 C++
std::vector<int> array; int arr[] = { 1, 2, 4, 5, 6 }; int* ar = new int[5]; ar = arr; //초기화 하는 법 std::vector<int> array2 = { 1, 2, 3, 4, 5 }; std::vector<int> array3 = arr; 벡터를 사용한 동적 배열의 경우에는 new int를 사용한 동적 배열처럼 변수로 입력 받아 배열을 만들 수 있는 방법이 없는지 궁금합니다. vector를 초기화 할 때 arr을 이용하려고 하니 계속 오류가 발생하는데, arr처럼 초기화 하기 위해서는 array3에 같은 값을 적어주는 방법 밖에는 없는 지 궁금합니다. 그리고 정적 배열에 비해 동적 배열이 가지는 장점이 사이즈를 런타임 중에 결정할 수 있다는 것만 있는지도 궁금합니다. 항상 친절하신 답변 정말 감사합니다.^^
미해결
C++20 훑어보기
1.ixx파일에서와 main.cpp 파일에서 둘다 std::cout 사용하려면 둘다에서 #include <iostream> 해야하나요? 제가 두군데 모두 사용하려니 ixx 파일에서만 추가해줬더니 main 파일에서 에러가 생기는군요 ㅠ 그렇다면강의에서처럼 #include <vector>추가 해줄 시 ixx파일에서만 사용가능하고 main 에서도 다시 추가를 해주어야 하는 것일까요? 모듈을 잘 사용하면 이제 .hpp 파일을 쓸 일은 없는건가요? 그리고 화면이 blur 됐다 선명해졌다 하는데... 이건왜 그런걸까요 ㅠㅠ blur가 될때 ; 가 : 인지 잘 표시가 안되는 어려움이 있네요.. ㅠ #include <iostream>
미해결
홍정모의 따라하며 배우는 C++
이런 식으로 배열을 초기화 하게 되면, matrix에는 첫번째 원소의 주소만 저장이 되지만, 컴퓨터 내부에서는 row * col개의 원소 만큼의 주소를 matrix에 할당해주는 것인지 궁금합니다.
미해결
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
레드블랙트리 부분 강의를 들었는데 규칙은 외울 필요 없이 이해만 하고, map을 사용하면 된다고 하셨는데 map과 레드블랙트리가 같은건가요?
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
dfs로 풀던 와중 시간 초과가 났습니다. 선생님과의 코드 로직이 비슷한데 다른 점이라면 저는 dfs를 시작하는 부분이 처음부터라는 것입니다. 선생님은 효율적으로 하기 위해 얼음을 녹인 부분부터 탐색하졌지만 저는 비효율적으로 움직인 것이지요. 그래서 코드를 보시면 아시겠지만 이번에 녹게 된 얼음을 water라는 벡터에 담고 그 위치를 기반으로 dfs를 했지만 시간 초과가 났습니다. 이유가 뭘까요..? 무조건 bfs로 풀어야 하는 문제인가요??! http://boj.kr/a9dad7d86c01419d8b1cf0b6a8f8683c
해결됨
[게임 프로그래머 도약반] DirectX11 입문
제가 원래는 wvp matrix로 곱해서 주어진 값을 w에있는 z값으로 나누어서 x,y는 -1~1z는 0~1로 클립핑 하고 래스터라이즈로 들어간다고 생각했었는데 이번 강의를 수강하면서 ms문서나 블로그들을 조사해보니까 클립핑할때는 x,yz 를 w랑 직접비교하고 그이후에 viewport로 변환을 미리 해주고 마지막에 w값을 나누어 주더라구요 먼저 제가 잘 이해했는지 궁금하고 그리고 viewport좌표로 변환하는 매트릭스는 Context->rssetviewport하는 과정에서 내부적으로 만들어지는건가요? 그리고 rasterizer 로 주어지는 값은 (800,600)을 예로 했을때 (0~800,0~600,0~1,1)이렇게 되나요? 감사합니다!!
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
TRACE하는 방식에서 헤매다가 큰돌님의 코드를 봤습니다! 그런데 만약 prev[next] = now 부분에 최단거리가 아닌 경우의 값이 now에 들어가게되면 이 값들을 tracing 할 경우 최단거리가 아닌 경우의 값을 tracing 하는 것 같은데 어째서 prev[next] 쪽의 코드가 최단거리인 경우의 prev 값만 저장하는 것인지 알 수 있을까요?? 최단거리 값의 정답이 4인 문제라고 가정할 때 제가 bfs를 돌렸을 때 최단거리 값이 6이나온 상태에서 here == k 라는 while문의 기저 사례 코드를 만나 종료가 됐다고 가정하면, prev[목적지]에 저장된 값들을 tracing 하면 4인 정답의 경로를 trace 하는 게 아니라 6인 정답의 경로를 trace하는 것 같아서 질문 드립니다!
미해결
홍정모의 따라하며 배우는 C++
강의 중 교수님께서 포인터가 array 에 주로 이용된다고 하셨습니다. 그 과정에서 사용하는 이유가 데이터를 파라미터로 넣어주면 다시 복사가 되고, 이를 for 문 안에서 실행시키면 계속 복사가 되어 느려져 사용한다고 하셨습니다. 여기서 복사가 된다고 하는 것이 for 문을 이용해서 array[i]의 i를 바꿔가며 새로운 값을 넣게되면 해당 array는 내용이 업데이트 되면서 계속 새롭게 생겨나서 느려진다는 것인지 궁금합니다. 강의의 어떤 부분에 해당 설명이 있는지도 궁금합니다.
미해결
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
for (int i = 0; i < 10; i++) { arrows[i]->AttackTarget(); // 기사가 죽었으면 소멸시켜준다 if (knight != nullptr) { if (knight->IsDead()) { delete knight; knight = nullptr; } } delete arrows[i]; arrows[i] = nullptr; } 이부분에서 나이트를 delete 하고 nullptr 로 채우고나서 애로우 부분에 // 공격 대상이 있다면 if (_target != nullptr) { // 데미지를 입힌다 target->AddHp(- damage); _target->PrintInfo(); } _target을 nullptr 체크했는대 구문으로 왜 들어오는건가요..?
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
http://boj.kr/7a4cd7062f27488eb2b897aae623f48e 위와 같이 재귀로 모든 경우를 탐색하돼 백트래킹을 넣어 어차피 더 해봤자 의미 없는 경우는 제외를 해줬는데 메모리 초과가 나왔습니다. 위처럼 재귀로 해결하면서 따로 백트래킹으로 예외 처리를 해주는 것 보다 bfs를 쓰는 것이 더 효율적인가요? 아니면 재귀와 bfs의 차이는 크지 않지만 예외 처리를 visited로 안해줘서 생기는 차이인가요? 어디서 차이가 나는 것인지 궁금합니다 큰돌 선생님!! + visited 배열로 예외처리를 하면 효율적으로 이미 간 곳은 못 가게 되니 속도가 빨라지는 것까지 알겠습니다! 하지만 이렇게 되면 '다른 경로로 같은 이동 횟수를 가지면서 같은 지점에 도착한 경우'에는 visited 조건 문에서 제외가 되는 걸로 알고 있습니다. 이러면 최솟값이 나온 경우가 몇가지인지 알 수가 없죠. 그래서 큰돌 선생님께서 위의 코드를 통해 그 수를 세어주신 것 같은데 어떻게 세어주는 개념인지 잘 이해가 가지 않습니다. 위 그림처럼 이미 못가는 곳이 저렇다고 가정하면 위 그림처럼 이전의 값들을 참고, 참고, 참고... 이렇게 참고 해가면서 현재의 경우의 수까지 나오는 것이라고 보면 될까요?
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
http://boj.kr/be195db38890481b9ca7ef38e786651e 선생님의 코드와 다른 부분은 스택을 매번 재선언하지 않고 재활용 할 수 있게 비워둔다는 점 뿐인 것 같습니다. gcc로 컴파일 했을 때, 2회 이상의 입력에서 2회차 반복 시에 아무런 출력도 하지 않고 그대로 프로그램이 강제 종료됩니다. 백준에는 런타임 에러라고 뜨는데, 입력과 관련된 문제일까요? 아니면 스택을 재선언 하지 않고 매번 비워두는 코드에서 런타임 에러가 발생한 것일까요..? 조언이 필요합니다. 감사합니다.
미해결
it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
#include <iostream> using namespace std; int a[9][9]; int b[9]; int main(){ freopen("input.txt","rt",stdin); int i,j,max,rev=0,tmp=2147000000; float x=0.0,sum=0.0; int c[9]; for(i=0;i<9;i++){ for(j=0;j<9;j++){ cin>>a[i][j]; sum+=a[i][j]; } b[i]=(sum/9.0)+0.5; sum=0.0; } for(i=0;i<9;i++){ for(j=0;j<9;j++){ tmp=a[i][j]-b[i]; if(tmp<0){ tmp*=-1; } if(tmp<max){ max=tmp; rev=a[i][j]; } if(max==tmp){ if(rev<a[i][j]){ rev=a[i][j]; } } } c[i]=rev; max=2147000000; } for(i=0;i<9;i++){ cout<<b[i]<<' '<<c[i]<<endl; } return 0; } 이렇게 짰을때 출력창에서 나머지는 다 똑같이 나오는데 첫번째 행의 평균과 가장 가까운수가 0이 나옵니다. 혹시 왜 이렇게 나오는지 알려주실 수 있나요...?
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. https://www.acmicpc.net/source/64767474 안녕하세요. dfs를 안쓰고, 연결하는거 체크를 해보았는데.. 예제는 전부 통과하는데 오답이 나오네요.. 이유가뭘까요??
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
http://boj.kr/36b07be654c44bf9ac885bc8f1726452 예시 코드도 맞고, 제 생각에는 맞는 코드인 것 같은데 어느 부분에서 틀린 건지 잘 모르겠습니다. 예외 테스트케이스가 있을까요?
미해결
[게임 프로그래머 도약반] DirectX11 입문
라이브러리를 빌드해서 쓰시는거 같은데 혹시 vcpkg를 안쓰시는 이유가 있나요?
미해결
코딩테스트 실전 모의고사(with C++) : 대기업 대비
안녕하세요. 궁금한점이 있어서 질문드립니다. BFS를 풀다가 생각난건데 OOOXX XXOOO OXXXX XXXXX OOOOO 이렇게 배열이 들어왔을때 11122 33111 43333 33333 55555 이런식으로 영역별로 숫자가 1씩 증가되는 코드를 작성하고 싶은데 어떻게 해야할까요..?
미해결
홍정모의 따라하며 배우는 C++
class Mother { public: int m_i; }; class Child : public Mother { public: Child() : m_i(1024) // <-------------------- error! {} }; 안녕하세요, Child에서 m_i(1) 초기화 안되는 이유가, 결국에는 Mother에서 초기화를 이미 했기 때문이라는 것일까요? 아니면 무조건 Mother에서 초기화를 해야한다는 것일까요?