묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-T 질문이 있습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/64dbaea1720740bd91f3d12c2ccee13a 원래 코드를 변형을 해봤는데 왠지는 모르겠지만 틀려서 왜 틀렸는지 몰라서 질문을 드립니다. 예제 입력까지는 맞았습니다. 바뀐 부분은 원래는 main함수에서 go함수를 호출할 때 a[0]를 먼저 sum에 더해놓고 가는데, 제가 바꾼 코드에서는 a[0]를 더하지 않고 호출하는 부분에서 해당하는 idx의 a[idx]를 더했고 기저 조건도 idx-2에서 리턴하는 게 아닌 idx-1에서 리턴하게 두었습니다. 감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-개념강의 2792번 질문있습니다
http://boj.kr/ecb460dd765d43ae81d5747be4e066d2이분탐색이 전체에서 /2단위로 줄여서 루트2단위로 줄어들어 시간복잡도를 줄이려는 탐색방법인것까지는 이해가 가는데 mid를 지정해놓고 mid-1, mid+1 mid 이부분을 l, r, 각각 지정하는부분이 문제마다 헷갈려서 잘 이해가 안가네요 ㅜㅜ예전에도 비슷한문제로 머리가아팠던거같은데 설명해주시면감사하겠습니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
우분투에서 c++ 프로그램
운영체제를 우분투 쓰고 있는데 c++ 프로그램으로 vscode로 괜찮은가요?
-
미해결홍정모의 따라하며 배우는 C++
대략 7분부터 작성하시는 Calc클래스에서
}Calc(int init_value) : m_value(init_value) {} Calc& add(int value) { m_value += value; return *this; } Calc& sub(int value) { m_value -= value; return *this; } Calc& mult(int value) { m_value *= value; return *this; }Calc& add, Calc& sub ,Calc& mult에서&를 지워도 오류가 안나더라구요 Calc add(int value) { m_value += value; return *this; } Calc sub(int value) { m_value -= value; return *this; } Calc mult(int value) { m_value *= value; return *this; }&만 지우고 int main() { { Calc cal=10; cal.add(10).sub(1).mult(2).print(); //38 cal.add(1).print();//21 return 0; } };돌렸는데 38로 값이 똑같이 나왔어요차이가 뭐지? 생각이 들어서add를 한번 더 했는데 21이 나오더라구요디버깅해보니까 20으로 시작하는 걸로 나오는데 이유를 모르겠어서요차이가 뭘까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-A combi 메소드 시작 인덱스에 따른 시간초과 이유
안녕하세요 큰돌님! 다름이 아니라, combi 메소드를 생성할 때,for (int i = start; i < chicken.size(); i++) { arrayList.add(i); combi(i); arrayList.remove(arrayList.size() - 1); }이 부분에서 starting index를 0으로 하면 시간초과가 나는 반면,starting index를 -1로 설정한 후for (int i = start + 1; i < chicken.size(); i++) {/*...*/}이런 식으로 작성하면 문제없이 통과됩니다. -1에서부터 인덱스를 시작하면 combi 메소드를 호출하는 횟수가 0에서 시작하는 것보다 상당한 차이로 줄어드는데 혹시 그러한 이유를 알 수 있을까요..?혹시 combi 내에서 호출할 때에 for문에서 int i의 시작점이 변화 없이 그대로 진행되기 때문일까요.. 감사합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-F 시간초과 질문드립니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/3ab039616a084231ae90581c8e7d1ba8 비트마스킹과 백트래킹을 이용해 풀이해봤으나 시간이 초과되어 어떤 효율적이지 못한 부분이 있는지 궁금해 질문드립니다.풀이 아이디어는 전수조사를 할때, 어차피 26개중 K를 모두 배운 경우가 K개보다 적게 배운 경우보다 읽을 수 있는 단어가 많거나 같을 것이기 때문에 21개 중 K-5개의 알파뱃을 고르는 경우를 백트래킹을 이용해 찾으면 그것이 더 효율적이지 않을까 생각되어 시도해보았습니다.
-
미해결홍정모의 따라하며 배우는 C++
extern 질문
//test.cpp #include <iostream> using namespace std; static int g_a = 1; // forawrad declaration void doSomething(); // == extern void doSomething(); extern int a; int main() { doSomething(); cout << a << endl; return 0; }// test2.cpp #include <iostream> int a = 10; void doSomething() { using namespace std; cout << "Hello" << endl; }다음 코드 중 test.cpp 파일에서 void doSomething();같은 경우는extern void doSomething();이렇게 extern 을 붙이든 말든 똑같이 잘 작동합니다. 하지만extern int a;의 경우에는 extern 없이int a;이렇게만 하면 linker error가 나옵니다. 이유가 궁금해요. 다음은 해당 linker error 입니다.현재 맥북 프로 사용 중이며 arm64입니다.VS code로 std=c++17 컴파일 했습니다.duplicate symbol '_a' in: /var/folders/js/x_hy51p16_x1jsv90sbbh7mw0000gn/T/test-06a7e1.o /var/folders/js/x_hy51p16_x1jsv90sbbh7mw0000gn/T/test2-9147ce.o ld: 1 duplicate symbol for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
함수 호출과정 질문입니다
안녕하세요.배운 내용을 다시 공부하면서 실행해본 결과입니다.함수 호출시에 232바이트만큼 rsp를 이동시키고 rbp를 32바이트만큼 빼서스택프레임당 32byte와 200byte의 여백을 남기는것을확인했습니다. 컴파일러가 컴파일시에 스택 사이즈를 정하고 저장하는 위치가 어디인지 궁금합니다. (예를들어 스택프레임은 32byte고 중간에 카나리(?)는 200byte라는걸 결정하면, os는 프로그램 실행시 해당 정보를 어떻게 알 수 있나요?)
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7 - K 문제 질문입니다.
좋은강의 감사합니다 선생님!해당 문제에 똑같은 질문이 있었는데 이해가 되지 않아서 질문드립니다.. 메모이제이션 부분에int &ret = dp[y][x][cnt][prev]; if (ret != -1) return ret; ret = 0;에서 ret = 0; 으로 초기화하는 이유를 모르겠습니다.질문 답변에서는 리프노드에서 -1을 return 하면 안되기 때문에 초기화를 해주어야 한다고 하셨는데, 리프노드에서는 기저사례에 걸리기 때문에 반드시 1 아니면 0을 리턴해주지 않나요?그래서 ret = 0을 초기화 해주지 않아도 0 또는 1을 반환되는것을 더하여 넘겨주는 것으로 이해하고 있는데 어떤 부분을 놓치고 있는지 잘 모르겠습니다ㅠㅠret = 0부분을 주석처리하고 예제 입력을 넣었을 때 예제2)6 4 2 5 3 3 2이 입력만 정답과 다른답이 나옵니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
아래 질문 링크 재공유>> 해결했습니다.^^;;
.
-
미해결홍정모의 따라하며 배우는 C++
vector resize() 질문.
이 코드에서의 결과값은#include <iostream> #include <vector> using namespace std; int main() { std::vector<int> v = {7, 8, 9}; for (auto &e : v) { cout << e << " "; } cout << endl; cout << "v.size() " << v.size() << endl; cout << "v.capacity() " << v.capacity() << endl; v.resize(2); cout << "v.size() " << v.size() << endl; cout << "v.capacity() " << v.capacity() << endl; //v.resize(5); // cout << v[2] << endl; // XXX // cout << v.at(2) << endl; // XXX int *ptr = v.data(); cout << ptr[2] << endl; return 0; }7 8 9 v.size() 3v.capacity() 3v.size() 2v.capacity() 39 이렇게 예상했던 것처럼 잘 나옵니다. 하지만다시 resize(5)를 하면,#include <iostream> #include <vector> using namespace std; int main() { std::vector<int> v = {7, 8, 9}; for (auto &e : v) { cout << e << " "; } cout << endl; cout << "v.size() " << v.size() << endl; cout << "v.capacity() " << v.capacity() << endl; v.resize(2); cout << "v.size() " << v.size() << endl; cout << "v.capacity() " << v.capacity() << endl; v.resize(5); cout << "v.size() " << v.size() << endl; cout << "v.capacity() " << v.capacity() << endl; // cout << v[2] << endl; // XXX // cout << v.at(2) << endl; // XXX int *ptr = v.data(); cout << ptr[2] << endl; return 0; }7 8 9 v.size() 3v.capacity() 3v.size() 2v.capacity() 3v.size() 5v.capacity() 60 결과값이 이렇게 나오게 되는데 ptr[2]의 값이 왜 0이 되는지,capacity의 값이 6이 되는지 모르겠습니다.. 맥북 m1 pro 사용 중이고, VS Code 사용, g++ -std=c++17로 컴파일 했습니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-B bfs를 반환형을 int로 해서 풀려고 하는데 틀립니다.
http://boj.kr/d137e4b306b742969928aca1cf5ed00f 선생님 안녕하세요. 풀이과정과 다르게 bfs반환형을 int로 만들어 풀려고 했지만 통과되지가 않습니다. 풀이랑 비교해도 비슷한거 같은데 다른부분을 잘 모르겠습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2%만 맞고 틀리네요..
https://www.acmicpc.net/source/67720015제 알고리즘에 강사님코드를 추가했습니다.bfs를 main에서 사용할 생각을 처음엔 못하고 불의위치만 bfs코드를 따로 떼어내서 구현한 것 빼고는비슷합니다..
-
해결됨홍정모의 따라하며 배우는 C++
2.5부동소수점수(29분:43초) isnan 함수
안녕하세요. 아래의 코드에서 isnan(posinf)는 왜 1이 나오고, isnan(neginf)는 왜 0이 나오는 지 모르겠습니다.posinf는 양의 무한대로 발산하고, neginf는 음의 무한대로 발산하는 것 아닌가요? 왜 둘의 결괏값이 다른 건지 이해가 가지 않는데, 자세한 설명해주시면 정말 감사하겠습니다.#include <iostream>#include <iomanip>#include <limits>#include <cmath>using namespace std;int main(){ double zero = 0.0; double posinf = 5.0 / zero; double neginf = - 5.0 / zero; cout << std::isnan(posinf) << endl; cout << std::isnan(neginf) << endl;}
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-E 반례 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/39c15e9338ad4585955d4d9f7453c741 나름의 방법대로 구현해봤는데, 반례를 찾기 어려워 질문드립니다. 좋은 강의 감사드립니다!
-
미해결[게임 프로그래머 도약반] DirectX11 입문
다렉 수업 전에 들어야 할 수업들이 있나요?
안녕하세요제가 미리보기 강의들을 보다가 수업 방식도 마음에 들었고 미리보기 예제 코드를 다운 받기 위해서 그냥 바로 수업 신청을 했습니다. 근데 초반에서 지속적으로 전에 수업에서 다 배웠다고 많은 부분들을 그냥 넘어가셔서 제가 이해가 잘 가지가 않습니다. 혹시 배우지 못했던 부분만을 따로 빼서 저렴하게 강의를 올리실 의향이나 아니면 제가 따로 공부하고 와야 할 부분을 알려주실 수 있을까요? 좀 많이 당황스럽습니다.
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
UE 수업 관련 문의드립니다
안녕하세요 게임 서버 개발자 직무를 희망하고 있는 학생입니다. 이번에 올인원 강의와 part4 서버 강의를 들은 뒤 언리얼 엔진과 서버 연동 강의 그리고 데디 서버 강의를 들을려고 계획중입니다. 혹시 해당 강의들을 듣고 따라갈려면 UE part1 ~ 4까지를 모두 들어야만 수강을 하는데 있어서 문제가 없는지 궁금합니다. 또 서버 개발자도 Unreal Engine을 현업에서 만지고 사용할 일이 많은지도 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-D 매개변수로 넘기면 왜 안빼도 되는거죠?
ㅠㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-N 곱셈 모듈러 관련 문의드립니다.
안녕하세요:)본 문제의 재귀 함수(go 함수) 안에서, b가 홀수인 경우 ret = ret * a % c; 가 되어야 하는 부분에 대해 한번 더 %c 연산을 하지 않아도 되는지 문의드립니다. 예를 들어 (a^5)%c의 경우, [{(a^4)%c}{a%c}]%c 와 같다고 이해했습니다. 이때 b=5 이므로 if(b%2) 에 걸리는데, ret가 (a^4)%c 인 상황에서 (a%c)%c 만큼 추가로 곱해줘야 성립이 되는게 아닌지 궁금합니다!( 만일 (a^4)%c 에 (a%c) 만 곱한다면 그 값이 c 보다 커져서 나머지 연산을 한번 더 해야할 경우도 있지 않나요? ) 감사합니다 :)
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-A 일곱 난쟁이 next_permutation 코드 관련 질문드립니다
안녕하세요:)일곱난쟁이 문제에서 "결과값을 오름차순으로 출력" 해야하는 부분과 관련하여 문의드립니다.next_permutation을 활용하여 경우의 수를 뽑는 경우에, 앞에서 부터 7개 순열을 잘라서 보면 어떤 것은 오름차순으로 되어있지 않은데 혹시 만일 그러한 순열이 답이 되는 경우 sort로 정렬을 다시 안해줘도 되나요? 예를 들어, 본 문제 테스트케이스의 경우[ 7 8 10 13 19 20 23] 이라는 값이 딱 sum이 100인 경우여서 오름차순 그대로 값이 출력이 되지만.. 만약 [7 8 10 13 15 25 19] 가 답이었다고 가정한다면 .. 오름차순이 안되는게 아닌지 해서요! 감사합니다:)