묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 문제 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 올려주신 해설과 다른 점을 딱히 못찾겠는데 제 코드는 10% 전에 틀렸습니다가 나오게 됩니다.반례를 알려주세요 ㅠㅠ#include <bits/stdc++.h> using namespace std; vector<string> split(string input, string delimiter) { vector<string> ret; long long pos = 0; string token = ""; while (pos = input.find(delimiter) != string::npos) { token = input.substr(0, pos); ret.push_back(token); input.erase(0, pos + delimiter.length()); } ret.push_back(input); return ret; } int main() { int cnt = 0; cin >> cnt; string pattern_str; cin >> pattern_str; vector<string> pattern = split(pattern_str, "*"); string s; for (int i = 0; i < cnt; i++) { cin >> s; if(pattern[0].size() + pattern[1].size() > s.size()) cout << "NE" << "\n"; else { bool check = (pattern[0] == s.substr(0, pattern[0].size())) && (pattern[1] == s.substr(s.size() - pattern[1].size())); if (check) { cout << "DA" << "\n"; } else { cout << "NE" << "\n"; } } } return 0; }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S 효율적인 해킹 문제 (중간에 값이 변합니다 ㅠㅠ)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 2-S 효율적인 해킹 문제를 풀던 중 도저히 알수없는 문제를 만나 질문글을 올립니다.다름아니라 최대값과 해킹할 수 있는 컴퓨터의 값이 중간에 변하는 문제를 만났습니다.보시는 바와 같이 DFS 결과값을 넣어주는 반복문 안에서 출력을 하면 출력값이 제대로 나오는데보시는 바와 같이 DFS 결과값을 넣어주는 반복문 밖에서 출력을 하면 DFS 결과값들을 넣어준 배열값들이 변하면서 원하는 출력값이 나오지 않습니다.. 어딜 실수한건지, 어딜 잘못적은건지 도저히 모르겠습니다....ㅠㅠ 도와주세요...ㅠㅠㅠㅠ
-
해결됨홍정모의 따라하며 배우는 C++
m_b를 출력하는 방법이 궁금합니다.
안녕하세요!5:43에 나와있는 코드에 관한 질문인데요.클래스 안에 클래스를 만들어서 출력을 하는 코드인데강의에서는 디버거로 어떻게 돌아가는지만 보여주시고클래스 안에 있는 클래스의 멤버값을 출력하는 방법은안 보여 주시더라고요.그래서 직접 해봤는데 에러가 뜨네요 ㅠ혹시 왜 에러가 뜨는지, 그리고 어떻게 하면 출력이 되는지 여쭤봐도 될까요?
-
해결됨홍정모의 따라하며 배우는 C++
생성자 멤버 초기화 목록을 만든 다음에 아래에 { }는 왜 꼭 있어야 하나요?
안녕하세요!선생님께서 수업시간에 설명해주신 코드를 따라쳐보니생성자 멤버 초기화 목록 아래에 남아있는 {}를 없애니까에러가 뜨더라구요.강의에서도 선생님께서 { }를 빈칸으로 두시던데그게 맞는건가요?{ }는 안에 멤버들을 집어넣어서 초기화 할 때 사용하잖아요. 멤버 초기화 목록을 사용하면 없어도 되는 것 같은데 굳이 비어있는 { }를 남겨두는게 이상해서 질문드립니다.
-
해결됨홍정모의 따라하며 배우는 C++
이 강의 가장 마지막에 설명해주신 first()와 second()는 함수인거죠?
안녕하세요!강의 가장 마지막에class 안에 class를 선언하면 안에 들어가있는 class가먼저 호출되고 그 다음에 나머지 class가 호출된다고설명해주셨잖아요.그런데 그 부분 설명해주실 때요.class First{ Second sec;public: First() { cout << "class First Constructor()" << endl; }};여기서 사용된 First()는 함수인가요 constructor인가요?constructor에 parameter가 없다면 ()를 쓰면 안된다고 배웠는데, First에는 ()가 있으니까 constructor가 아니라 함수인가보다 생각하고 있었는데, cout으로 class First Contructor이라고 출력을 하니까 이게 함수인지 생성자인지 헷갈리네요 ㅠ
-
미해결홍정모의 따라하며 배우는 C++
( )로 초기화를 하는 걸 뭐라고 부르나요?
안녕하세요!앞 강의에서 설명을 해주셨던 것 같은데,필기를 안해놔서 기억이 안나서 질문드려요.{ }으로 초기화를 한 것을 uniform initialization이라고 하잖아요.그럼 ( )으로 초기화를 한 것은 명칭이 뭔가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-A 도대체 뭐가 틀린건지 모르겠어요
http://boj.kr/d2eacfaff77446728671edea35b1d7e9코드 작성한 후 강사님 코드를 보면서 수정하였는데 도대체 뭐가 틀린 건지 모르겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
그래프 문제 해결 방식 관련
안녕하세요, 강사님좋은 강의 덕분에 코테 준비를 잘 해가고 있습니다. 다름이 아니라, 그래프 유형 문제를 풀 때, 즉 bfs나 dfs 관련 문제를 백준 사이트에서 찾아 풀 때, void bfs(int y, int x).... 이렇게 풀고 있는데, 오래 걸려도 풀지 못 할 때, 다른 사람의 답안을 볼 떄는 void bfs(int x, int y)로 잡아서 풀더라구요. 다른 사람의 답안을 강사님이 풀어주시는 방식으로 바꿔 풀 때는, 그냥 x->y, y->x로만 바꿔서 풀면 될지, 매개변수 들을 다 바꿔야 될지 굉장히 헷갈려서 질문 드립니다 ㅠㅠ
-
미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
조합을 구할때 algorithm 함수 next_permutation 사용 가능 여부
제목 그대로 조합을 구할때 next_permutation 을 사용 해도 되는지 궁금합니다
-
미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
최악의 경우 연산 질문이 있습니다.
강의를 수강하고 있는 학생입니다. 다만 최악의 경우를 따지는 데에서 조합의 수 x n(학생의수) 의 최악의 경우15C7 x 30000인데 이경우 6435x30000=193,050,000가 도출됩니다.이러면 계산이 2억번 가까이 되어서 1000ms에 풀수 있는지 여쭤 볼 수 있을 까요?
-
미해결홍정모의 따라하며 배우는 C++
제가 이해한것 정리해봅니다 맞는지 확인 부탁드려요
Resource &operator = (Resource& res) // '='연산자 오버로딩 함수 (반환값이 Resource, 이고 &는 왜 붙는지 모르겠음 '='를 써주는 것처럼 하나의 약속인가요?) { std::cout << "Resource copy assignment" << std::endl; if (&res == this) return *this; //파라미터로 들어온 객체와 &operator함수를 실행중인 객체가 같은가? if (this->m_data != nullptr) delete[] m_data; //다르다면 현재 함수를 실행중인 객체의 m_data가 있으면 비워주고 m_length = res.m_length; //자신의 m_length에 파라미터로 들어온 객체의 m_length로 채워주고 m_data = new int[m_length]; //자신의 m_data의 메모리를 m_length만큼 동적할당해준 뒤 for (unsigned i = 0; i < m_length; ++i) m_data[i] = res.m_data[i]; //자신의 m_data에 파라미터로 들어온 객체의 m_data를 복사해서 넣는다. return *this; //이 함수가 종료되면 나 자신의 객체의 주소를 반환한다. 반환값이 Resource클래스인데 어떻게 포인터로 가능하죠? }
-
미해결홍정모의 따라하며 배우는 C++
stdafxh에 관한 오류
1.09 강의에서는 교수님 코드를 보면 stdafx.h를 인클루드 하셨길래 저도 따라해보려 하니 미리컴파일된 헤더 관련해서 #include "stdafx.h"가 오류가 나더라구요 구글링을해보니 저 #include "stdafx.h"을 쓰면 좀 더 빠르게 컴파일?된다는거 같아서 프로젝트 설정에서 미리컴파일된 헤더 사용안함에서 사용으로바꾸고 해봐도 오류가 나서 일단은 기본대로 사용안함하고 #include "stdafx.h"이 코드도 안적고 하고있는데 미리컴파일된 헤더사용을 하려면 어떻게 설정해야될까요 ?감사합니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
map 질문드립니다.
vector<int> v{1,1,2,2,3,3};에서 map을 이용해서 중복제거하셨던데for(int i : v){ if(mp[i]){ continue; }else{ mp[i] =1; }} i에 순서대로 1,1,2,2,3,3이 들어가는거까진 알겠는데이 for문을 돌면 map에는 1,2,3이 어떻게 들어가는건지 이해가 잘 안가네요 ㅠㅠ첫번째 mp[1]이 들어가면 else로 들어가서 mp[1] = 1이 들어가고 다음 i=1이 들어가면 if(mp[1])에서 1이 있으므로 true이고 continue로 들어가는건 알겠습니다.i=2가 들어가면 이때부터if(mp[2])에서 여기부터 이해가 잘 안갑니다. 어떻게 mp[2]에 2가 들어가는지요..
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <algorithm> #include <map> #include <set> #include <vector> #include <queue> #include <cstring> int N, M; int cache[10001] = {-1,}; int traverse(std::map<int, std::vector<int>>& treeMap, int node) { if (treeMap.find(node) == treeMap.end()) { cache[node] = 1; return 1; } if (cache[node] != -1) { return cache[node]; } int sum = 0; std::vector<int> v = treeMap[node]; for (int i = 0; i < v.size(); ++i) { int tmp = traverse(treeMap, v[i]); sum += tmp; } cache[node] = sum + 1; return sum + 1; } int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(nullptr); std::cout.tie(nullptr); std::cin >> N >> M; memset(cache, -1, sizeof(cache)); std::map<int, std::vector<int>> treeMap; for (int i = 0; i < M; ++i) { int from, to; std::cin >> to >> from; if (treeMap.find(from) == treeMap.end()) { std::vector<int> v; v.reserve(N); v.push_back(to); treeMap[from] = v; continue; } treeMap[from].push_back(to); } std::map<int, std::vector<int>> countMap; int maxCount = 0; for (auto iter : treeMap) { const int startNode = iter.first; memset(cache, -1, sizeof(cache)); int nodeCount = traverse(treeMap, startNode); maxCount = std::max(maxCount, nodeCount); if (countMap.find(nodeCount) == countMap.end()) { std::vector<int> v; v.push_back(startNode); countMap[nodeCount] = v; continue; } countMap[nodeCount].push_back(startNode); } for (int i = 0; i < countMap[maxCount].size(); ++i) { std::cout << countMap[maxCount][i] << " "; } std::cout << std::endl; return 0; }답이 틀렸다고 나오는데 어디서 왜 틀렸는지 잘 모르겠습니다. 혹시 이 부분을 설명해주실 수 있으실까요?
-
미해결홍정모의 따라하며 배우는 C++
too long이 나오는 이유 그냥...
언더플로우 일어난거 아닌가요?이 부분 입니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
강의 내용 정리
코딩 테스트 준비를 처음하는 취준생입니다. 다름이 아니라 학습 내용 정리 및 학습을 했다는 나름의 증명으로 개인 blog에 내용을 정리하고자 합니다.코드랑 수업 내용 일부분을 캡쳐 해서 블로그에 사용해도 되는지 궁금해서 질문을 남깁니다.출처는 반드시 밝히겠습니다!
-
해결됨홍정모의 따라하며 배우는 C++
익명 객체에서 생성자와 getCents함수에 대해 궁금한 점이 있습니다.
#include <iostream> using namespace std; class Cents { private: int cents_; public: Cents(const int& cents) : cents_(cents) { cout << "Constructor" << endl; } const int& getCents() const//뒤에 const를 붙여준 이유는 함수 오버로딩 { return cents_; } }; Cents add(const Cents& c1, const Cents& c2) { return Cents(c1.getCents() + c2.getCents());//Cents 생성자 호출 } int main() { cout << add(Cents(6), Cents(8)).getCents()<< endl; //인자로 하는 생성자 각각 호출 return 0; }교수님께서는 getCents함수에서 반환형에서 참조자를 붙이지 않고 뒤에 const만 붙였는데요. 이러면 return by value가 되서 복사된 값을 반환하는 것이 아닌가요? 멤버변수 그 자체를 반환하고 값이 변경되는 것을 방지하기 위해서는 반환형에 const int&를 붙여야 하지 않나요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
알고리즘 교안 하루만에 다 봤는데요.,
c# 4년차입니다. 비전공자입니다.c++로 알고리즘 풀어보려고 일단 교안은 코드 쳐보면서 다 보았습니다.다만, 이해가 안가는 부분도 중간중간에 있지만 일단 한번은 훑어보았습니다.(비전공자라..쉽지는 않네요)지금상태에서 바로 0주차부터 강의들어도 될까요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
dev c++ 자체 오류..
어제 강의 결제하고 오늘부터 시작하려는데 이렇게 뜨고 다른 코드도 전부 안되네요..
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
log(2n+1) 이 아니라 log2의(2n) 아닌가요?
갑자기 2n+1 이 왜 나온지 모르겠습니다...