묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-D 런타임에러가 나욥
vscode에선 잘 실행되는데 제출시 런타임에러가 납니다 ㅠ http://boj.kr/bb0b0ec8f10a45f58f9e578ffd3694eb#include <bits/stdc++.h> using namespace std; // 입력값을 받는다 만약 s사이즈가 1이면 곧바로 0를 리턴한다. // 2. 절반으로 나눈 값을 저장한다. // 3. string a,b를 선언하고 function(string s, int start를 받는다.) // 4. a와 b를 function을 통해 받고 비교한 후 같다면 1 , 아니라면 0을 반환한다. string input; string f(int start, int size){ string r; for(int i = start; i < start+size; i++){ r += input[i]; } return r; } int main() { cin >> input; if(input.size() == 1) { return 1; } int size = input.size() / 2; int sniff = input.size() % 2 != 0; string a = f(0,size); string b = f(size + sniff,size); reverse(b.begin(),b.end()); int result = 0; if(a == b){ result = 1; } cout << result; return 0; }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
DP 개념강의 자두나무 질문
안녕하세요 강사님, DP개념강의 설명하실 때 자두나무 코드를 예시로 설명해주셨는데요. 강사님 코드대로 실행해보니 제가 생각한 테스트케이스랑 다르게 나와서 질문드립니다. 입력 3 4111 제 예상: 3강사님 코드 출력: 1 입력3 12111 제 예상: 3강사님 코드 출력: -999999997
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5 - V make 함수 범위
void make(int n, int psum[], map<int, int>& mp) { for (int i = 1; i <= n; i++) { for (int j = i; j <= n + i - 1; j++) { int value = psum[j] - psum[j - i]; mp[value]++; if (i == n)break; } } } 위 코드에서 j의 범위가 j <= n이 아닌j <= n + i - 1인 것인 이유는 원형구조를 선형으로 대체하기 위해 늘려준 범위인 것일까요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S 질문
http://boj.kr/3c317ac3fc7940aaa96c9d416b207932안녕하세요 선생님.2-S 효율적인 해킹 문제를 위와같이 풀어보려 했는데 실패했습니다. 매 정점마다 각 정점을 start로 삼아 dfs로 탐색 후, 탐색을 마쳤을 때의 visited개수의 총합을 sum_hacked() 함수로 구해 가장 효율적인 해킹이 가능한 경우를 구하려 했는데요. 예제는 Pass되었으나 채점에서 바로 오답처리가 됩니다.잘못 생각한 부분 힌트 주시면 감사드리겠습니다. 감사합니다.
-
미해결홍정모의 따라하며 배우는 C++
대입 연산자 오버로딩시 리턴 데이터형을 참조(&)로 하지 않으면 에러 발생 합니다.
안녕하세요.대입 연산자 오버로딩 문제에서 리턴 할 데이터형을 참조(&)로 하지 않으니깐 delete하는 데에서 이미 동적 할당한 객체가 삭제(?) 되어 쓰레기 값이 있어 에러가 발생 하더라구요.대입 연산자의 경우 리턴 데이터형을 참조로 하지 않으면 delete할때 동적 할당한 데이터 m_data에 쓰레기 값이 들어가 있더라구요.이해가 되지 않아 질문 올릴려다가 객체의 주소값을 확인해 보았는데, 'array4'의 주소와 delete 할때 'this'의 주소를 확인해 본 경우 서로 다르더라구요. 왜 서로 다른지 이해가 되지 않습니다.값 복사가 일어나서 그런 것 같은데, 그렇다면 소멸자에서 array4의 객체 주소 소멸자가 아닌 다른 값 복사 난 객체의 소멸자가 불러와 지던데 왜 그런걸까요?제가 기본기가 부족해서 그런지 이런 부분들이 이해가 되지 않으면 혼란스럽네요. IntArray operator = (const IntArray& intArray){ cout << "operator = " << endl; if (this == &intArray) return *this; delete[] this->m_data; if (intArray.m_data == nullptr) m_data = nullptr; this->m_length = intArray.m_length; this->m_data = new int[m_length]; for (int i = 0; i < intArray.m_length; ++i) { this->m_data[i] = intArray.m_data[i]; } return *this; } int main() { IntArray array1{ 3,44,5 }; IntArray array2{ 10,20,30,40 }; IntArray array4(4); array4 = array1; return 0; }
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
Field초기화
Field를 초기화를 Game의 생성자가 아닌 Init에서 초기화하는 이유가 뭔가요? 다른 이유가 없다면 Game의 생성자에서 초기화해도 되는건가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-D lower_bound 질문있습니다 :)
안녕하세요 선생님 🙂 lower_bound와 관련하여 궁금한 것이 있어서 질문드립니다. 해당 문제는 lower_bound를 이용하여 A 안에 있는 요소들 중 하나를 골라서 B에 있는 요소보다 큰 경우를 누적하여 더한 후에 출력하는 문제였습니다. 문제의 결과 값에서 lower_bound의 역할을 유추해보면, 1, 2번째 파라미터에 넣는 배열의 범위에서 3번째 파라미터에 있는 요소보다 작은 요소의 개수를 출력해주는 함수라는 것을 알 수 있었습니다. 반대로 upper_bound는 작은 요소가 아닌 큰 요소의 개수를 출력해주는 함수라는 것을 알게 되었습니다. 그렇다면, 같은 요소의 개수를 출력해주는 방법도 있을 거라고 생각하는데요, 구글을 아무리 뒤져봐도 키워드 선택을 잘못해서 그러는건지.. 관련 자료를 찾을 수 없었습니다. 혹시 이런 함수가 따로 있다면 알려주시면 도움이 많이 될 것 같습니다 :) lower_bound가 같은 경우도 처리해준다는 자료를 보긴 했는데요, 이 자료에 신뢰성이 있으려면 해당 문제에서 A와 B의 요소가 같아도 A가 B를 잡아먹을 수 있다는 조건을 만족해야 할 것 같습니다. 아래는 제가 보았던 자료의 링크입니다.https://chanhuiseok.github.io/posts/algo-55/
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
선형탐색 -> "틀렸습니다" 가 나옵니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님. 선형탐색으로 하면 어떻게 되는지 궁금하여 백준에 해당 코드를 제출하여보았는데 예상과 다르게 "틀렸습니다" 가 나옵니다. 선형탐색은 시간복잡도가 더 클 뿐 틀린것은 아니기에 "시간초과" 가 나와야 되는거 아닌가요??#include<bits/stdc++.h> using namespace std; int n; int m; int a[300002]; int ret = 987654321; bool search(int mid) { int t_ret = 0; for (int j = 0; j < m; j++) { t_ret += a[j] / mid; if (a[j] % mid) t_ret++; } return t_ret <= n; } int main() { cin >> n >> m; int left = 1, right = -1; for (int i = 0; i < m; i++) { cin >> a[i]; right = max(right, a[i]); } ret = right; for (int i = left; i <= right; i++) { if (search(i)) { ret = min(ret, i); break; } } cout << ret; return 0; }
-
해결됨C개발자를 위한 최소한의 C++
nullprt vs null
안녕하세요. 마지막 주소록 예제를 따라하면서 궁금한 부분이 있어 질문드립니다. 두 가지 예제를 비교했을 시, 포인터를 초기화 시, NULL / nullptr 두 가지 방식을 모두 사용되고 있습니다. NULL로 초기화와 nullptr 초기화 방식에 있어, 어떠한 기준이 있는지 궁금합니다 ~ int MyList::addNewNode(const char* pName, const char* pPhone) { UserData* pNewUser = nullptr; // nullptr로 초기화 if (findNode(pName) != nullptr) return 0; pNewUser = new UserData; strcpy_s(pNewUser->name, sizeof(pNewUser->name), pName); strcpy_s(pNewUser->phone, sizeof(pNewUser->phone), pPhone); pNewUser->pNext = NULL; // NULL로 초기화 return 0; }void CMyList::releaseList(void) { CUserData *pTmp = m_Head.pNext; CUserData *pDelete = NULL; while (pTmp != NULL) { pDelete = pTmp; pTmp = pTmp->pNext; delete pDelete; } m_Head.pNext = NULL; }
-
미해결[Rookiss University] UE5 Lyra 클론 코딩 (Haker&Liu)
로직 이슈 있음.
좌우로 추가 된다고 말씀주셨는데, 좌우로 추가되는 로직이 아닙니다.그리고 보니까 offset 추가되는 부분에서, UserFacingExperienceList 의 Length 가지고 로직 돌리던데, Index 없이 돌리는 부분이 없네요. 저렇게 되면 무조건 0번쨰 인덱스 가지고 계산하게 됩니다.수정은 상위 ForEachLoop 부분에서 ArrayIndex 반환하는 부분이 있는데, 그걸 쓰셔야할것 같아요. 보니까 포탈이 1개라서 눈치를 못채셨을것 같은데, 이 부분 영상수정 혹은 자막 첨부 부탁드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5 - S 실전 관련 질문 드립니다..!
풀긴 했는데 메모리랑 시간 사용량이 어마어마 해서요..실전이 얼마 안남아서 실전에서도 이렇게 풀어도 되나 싶어서 여쭤봅니다... 제가 파악한 큰돌님과 저의 코드 차이점은저는 연산 기호를 사용할 수 있냐는 기준을카운팅 배열을 쓰고 원복하고 했던 거랑수식들을 계산할 때, 스택에 넣고 계산하는 방식을 쓴 게 가장 큰 차이인 것 같습니다.그리고 실제 문제로 이런 문제가 나온다면 몇 분 안에 풀어야 될지도 궁금합니다..! 저는 40~50분 안에 풀면 안정권이라 생각했는데 큰돌님 의견이 궁금하네욤!http://boj.kr/229b1729870841dfa19aaa13c1760073
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-S 질문드립니다 :)
안녕하세요 선생님 🙂 다시 풀다가 이해가 되지 않는 부분이 있어서 질문드립니다. 재귀를 할 때 함수 파라미터에 sum - 1, minus - 1이 아닌 --sum, --minus를 넣을 때 틀리는 이유가 궁금합니다.위의 아이디어를 떠올린 계기는, -1연산을 습관적으로 sum--와 같은 후위연산자를 사용해서 풀이했었습니다. 결과가 틀렸을 때, '후위연산자여서 함수가 재귀될 때 바로 -1이 되지 않아서 그런거구나'라는 생각이 들어서 --sum과 같은 전위연산자를 사용했는데도 틀리더라구요.. 조언주시면 정말 감사하겠습니다!! ^^ http://boj.kr/2a8523783dfd497a96fc3229f86e0218
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-Q 질문 있습니다.!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.http://boj.kr/9d9e543bdcc34d91b61422b4f11385ae안녕하세요 선생님 제가 작성한 코드입니다. 아무리 생각해도 이코드도 맞아야 되는거 같은데 왜 틀렸는지 도저히 모르겠네요... 어떤 부분이 틀렸는지 궁금합니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
그리디, 라인스위핑 질문있습니다 :)
안녕하세요 선생님 🙂 그리디랑 라인스위핑 문제를 다시 풀어보고있는데요, 문제마다 앞에서부터 정렬할지, 뒤에서부터 정렬할지 정확하게 판단이 서지를 않고 있습니다. 조언해주신다면 정말 도움이 많이 될 것 같습니다..!! 항상 감사합니다 :)
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-T 질문있습니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 선생님, 2-T 접근방법에 대해 질문있습니다!문제를 읽고 우선 queue나 stack으로 풀어야겠다는 생각은 들었는데, 해당 문제가 우측으로 더 큰항목이 있는지 비교(input과 특정 항목을 비교)하는 문제이기 때문에, queue로 구현하면 queue의 front에 가장 큰 값이 들어올 경우, 이후 항목에서 오큰수를 부여할 수 있는 수열들이 들어오더라도 queue를 pop하지 못하고, pop할 수 있는 항목들을 queue를 순회해서 찾는다고 하면 시간복잡도가 O(N^2)으로 커져버리니까 스택을 사용해야겠다! 라는 사고에 따라 스택을 사용하기로 결정하면 되나요?또 한가지 질문이 있습니다..!! 정답 배열로 정수를 출력하는 문제라고 가정하면, int배열을 사용하여 푸는 것과 벡터<int> v 에 푸시하여 사용하는 것 어떤 것이 유리한지 궁금합니다!
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
_wfopen_s(&file, path.c_str(), L"wb"); 실패하는 경우
void Tilemap::SaveFile(const wstring& path){ { FILE* file = nullptr; ::_wfopen_s(&file, path.c_str(), L"wb");//writebinary ::fwrite(&_mapSize.x, sizeof(_mapSize.x), 1, file); <- 여기에서 크러쉬 나면서 뻗어버립니다.} 이럴 경우 관리자 권한 문제일까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
tsp함수에서 (visited | (1 << i))
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요. 강의잘 듣고 있습니다. 다름이 아니라 코드 중에 잘 이해가 가지 않는 부분이 있어서 질문드립니다.ret = min(ret, tsmp(i, visited | (1 << i)) + dist[here][i]);에서 visited | (1 << i)는 i를 기준으로 탐색하지 않는 곳을 확인 하기 위해서 필요한 코드인가요?ex) tsp(0, 1)이고 i = 1일때, ret = min(최대, tsp(1, 1 | (1 << 1), + dist[0][1])이 됩니다여기서 tsp(1, 1 | (1 << 1)은 0, 1번째를 탐색했고 다시 1번째를 기준으로 2, 3을 탐색하는 것일까요?0, 1을 탐색하는 이유는 1 | (1 << 1) -> 0001 | 0010 -> 0011이고 이는 0번째와 1번째를 확인했음을 의미하는 거 맞을까요?그리고 2번을 기준으로 나머지 탐색을 하지 않은 도시(3, 4)를 탐색하는 것이구요.위의 내용이 맞다면, 해당 코드에 대한 이해는 했는데 솔직히 말하면 제가 visited | (1 << i)라는 코드를 떠올리지는 못할 것 같습니다... 어떻게 하면 떠올릴 수 있을까요? 아직은 문제풀이를 많이 하지 않았으니까 그냥 외우면 되는 걸까요? ㅠㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-H 질문있습니다 :)
안녕하세요 선생님 🙂 다시 풀다보니 아래와 같은 풀이가 나왔는데요, 테스트케이스는 전부 올바른데 어디가 잘못된 것인지 모르겠어서 질문드립니다 ㅠㅠ 완전탐색을 이용하였습니다.http://boj.kr/4da9822932e3463aad4614f9fd3ab7db
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-Q 시간초과 질문있습니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요! 이번에 2-Q문제를 푸는데, 로직과 출력은 문제없는것 같은데 시간 초과가 나와서 어느 부분때문에 시간 초과가 나온지 너무 궁금합니다. http://boj.kr/0d1b70e1393b4e239c54738af690e44e항상 좋은 강의 감사합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-J 주난의 난
http://boj.kr/33a1d8de2da14b3490eaa1b3effe36c0안녕하세요 강사님,이런식으로 작성해보았는데 코드 리뷰 부탁드려도 될까요??