묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
중복된 요소 제거 목적으로는
중복된 요소 제거 목적으로는 그냥 set을 활용하면 안되나요?굳이 unique와 erase를 활용하는 이유가 있을까요? 시간복잡도도 많이 차이날텐데 set을 활용하때와 비교해서요.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-H 경로가 여러개일경우 하나만 출력하면 되는건가요?
여러개 출력해야하는 줄 알았는데 아니었나보네요#define prev aaa #define next aaaa 는 무슨뜻일까요?
-
해결됨홍정모의 따라하며 배우는 C++
15.4 std::move 관련
14:05쯤 18, 19행 operator 오버로딩이 다르다고 직접 디버거로 찍어보라고 하셨는데, 디버거에서 어떻게 확인해야하는지 모르겠습니다. (std::move에 들어가서 볼 수 있을 줄 알았는데 제가 못 찾는건지 확인이 어려워서요...) 11:00쯤 v.push_back(str);과v.push_back(std::move(str)); 을 비교한 것처럼,오버로딩된 함수를 사용하는 것(하나는 l-value로 parameter를 받고 하나는 r-value로 parameter를 받는)을 말씀하시는 것 같은데17행의 parmeter로 들어온 b도 l-value,18행의 지역변수인 tmp도 l-value 아닌가요?아니면 b는 T&로 받아오고, tmp는 T로 받아서 오버로딩되었다는 뜻인가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-G 풀이 원리가
수빈이가 가는 모든곳을 계산할건데next가 먼저 자리잡는애가 최단시간 거리고next가 먼저 자리잡은애가 있는데 지금자리에서 1번만에 이동가능하면 else if 문이 실행되서 cnt가 늘어나는거고그중에서 동생이 있는곳의 값을 출력하는거군요??그리고 for (int next : {now-1, now+1, now*2}) 이 부분을 int i=0; i<n;i++ 이런식으로 구현하려면 어떻게 해야할까요? 그냥 몰라도 되려나요
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
다음 강의 고민입니다
이번 강의를 다 듣고 다음 강의 중 section3 부터 할지 section2 부터 할지 고민입니다.먼저 자료구조와 알고리즘을 통해 C++ 에 대해 더 공부하는게 괜찮을까요?
-
미해결홍정모의 따라하며 배우는 C++
15.3에서 생성자, 복사 대입 연산자 관련
(이미지가 잘 안 보여서 저장해서 보셔야할 것 같습니다)이동 생성자 설명 전 강의 초반에 복사 생성자를 사용하면 어떻게 되는지 보여주시는데 이해가 잘 안 돼서 디버거를 사용해보았습니다.제가 이해한대로 적어봤는데, 혹시 잘못 이해한 부분이 있다면 설명 부탁드립니다.그리고 이미지에도 적어두었듯이 맨 첫줄에서 왜 Resource default construct는 호출되지 않은 것인지 궁금합니다! 다른 질문자들에게 달아주신 답변들도 참고하며 공부하고 있습니다. 감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 불이야 답 rep()부분 수정해주시면 안될까요?
사실 그냥 강의로 답 봐도 되긴합니다만 ㅠㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[완료]split 과 cin 에 대한 질문 입니다.
안녕하세요. 강사님.split 강의를 보다가split 함수에 들어가는 input 에 대응되는 인자를cin 메소드로 입력받게 했는데요.이상하게 첫 번째 token 만 받아와져서왜 해당 코드에선 정상 작동하지 않는지 궁금합니다.=============================================cin 이 공백 기준으로 구분 짓는다는 것을 잊었네요.std::getline 를 통해서 해결할 수 있는 것을 확인했습니다.=============================================#include <bits/stdc++.h> using namespace std; // split vector<string> split(string input, string delimiter) { vector<string> ret; long long pos; 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(void) { string abc, delimiter; cout << "input : "; // 입력을 받는 부분 cin >> abc; // abc = "a b c"; delimiter = " "; vector<string> result = split(abc, delimiter); for(auto it : result) cout << it << '\n'; return 0; }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-m 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요~~ 강의 잘 보고 있습니다.강의 중 3:18 에 "for문 c를 이렇게 한 점 ~" 이러는 부분 코드for(c++; c < n; c++)시작점에 c++ 이 있는 for문은 처음 보는데 검색해도 안나와서 설명 부탁 드립니다.for 문 돌기 전 저장된 c 에서 ++ 된 값으로 시작한다는 의미인가요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-I bool cmp함수에 대해 질문입니다
안녕하세요 강사님!첫번째 질문입니다!15행에 있는 bool타입의 cmp함수에 대해서 궁금한것이 있습니다. 저는 비교할 a와 b를 atoi함수를 이용하여 정수형으로 바꾼 다음 true와 false값을 반환하고 싶었습니다.http://boj.kr/5ddd323af5c04a56b8275929460adbd4하지만, 실력이 미숙하여서 atoi함수를 이용한 정답을 찾지 못하고 있습니다.그래서, atoi함수를 이용한 bool타입의 cmp함수의 코드가 궁금합니다! 두번째 질문입니다.http://boj.kr/665da2ad9cd1493ca004c528b5a74454위 코드를 이용해서 문제의 예제입력3번을 입력하면 출력값으로 0 0 0 1 2 3 4 7이 나옵니다.이 중, 0이 나오는 위치를 찾아보니 01bond와 03bond뒤에 0이 각각 출력됩니다. 고민해봐도 0이 왜 출력되는지 모르겠어서 질문 드립니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-E 의 단순 질문입니다
큰돌님 께서는 quard함수 안에 bool flag=0을 선어 하셨는데 하신 이유가 궁금합니다
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
문제 5번 질문드립니다.
풀이를 안보고 만들어 보았는데 이렇게 하니 문자의 위치를 교환하는 부분은 문제가 없는데 교환을 하는 중간 부분에서 원하는 값인 dlrow olleh 가나와도 멈추지를 않아 다시 hello world가 최종값으로 되어 출력이 됩니다.. 이런 경우에는 어떻게 해결해야 하나요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-G 문제 풀이 질문있습니다
http://boj.kr/c3c5f90c10764291bfde2d6fe64406a2 자꾸 런타임에러(segfault)가 뜨네요 ㅜ원인이 무엇인지 궁금합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R 틀린 이유를 알고싶습니다ㅠㅠ
안녕하세요 큰돌님!2-R에서 선생님께서는 child라는 변수를 만들어 기저사례를 정하셨는데 저는 a[here].size() 즉 배열의 크기가 0이면 return 1을 하도록 기저사례를 정의했습니다.그렇게 했더니 틀렸습니다가 뜨더군요ㅠㅠㅠ 배열의 크기로 확인하면 안되는 걸까요..?#include <bits/stdc++.h> using namespace std; vector<int> a[54]; int n, tmp, del, root; int dfs(int here) { int ret = 0; //이 부분입니다! if(a[here].size() == 0) return 1; for(int there : a[here]) { if(there == del) continue; ret += dfs(there); } return ret; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cin >> n; for(int i = 0; i < n; i++) { cin >> tmp; if(tmp == -1) root = i; else a[tmp].push_back(i); } cin >> del; if(del == root) { cout << 0 << "\n"; return 0; } cout << dfs(root) << "\n"; return 0; }
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-B똑같이 친거같은데 결과가 다르네요
using namespace 아래로 답지꺼 복붙 하니까 제대로 되는데 제가 답지 따라서 타이핑 친 건 이건데 안 나오네요 아무리 봐도 어디가 잘못된 줄 모르겠어요#include<iostream> #include<cstring> #include<queue> #include<tuple> using namespace std; int n, m, mx, visited[54][54]; const int dy[]={-1,0,1,0}; const int dx[]={0,1,0,-1}; char a[54][54]; void bfs(int y, int x){ memset(visited,0,sizeof(visited)); visited[y][x]=1; queue<pair<int,int>>q; q.push({y,x}); while(q.size()){ tie(y,x)=q.front();q.pop(); for(int i=0;i<4;i++){ int ny=y+dy[i]; int nx=x+dy[i]; if(ny<0||ny>=n||nx<0||nx>=m)continue; if(visited[ny][nx])continue; if(a[ny][nx]=='W')continue; visited[ny][nx]=visited[y][x]+1; q.push({ny,nx}); mx=max(mx, visited[ny][nx]); } } return; } int main(){ cin >> n >> m; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>a[i][j]; } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(a[i][j]=='L')bfs(i,j); } } cout << mx-1 << "\n"; }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-B char는 띄어쓰기 없어도 그냥 배열에 받을 수 있는건가요
int경우에만 띄어쓰기 주의하면 되나요
-
해결됨CUDA 프로그래밍 (2) - C/C++/GPU 병렬 컴퓨팅 - 벡터 vector 더하기
Warp 갯수에 대한 고찰입니다....
SM내 warp가 24개가 이상일 경우에 overlab이 생기지 않아 효율적인 스케줄링이 가능하다는 것은 정확히 이해 했지만, Warp 갯수가 적어지면 근본적으로 작업시간 자체는 줄지 않을까? 그렇다면 빨리 끝나는게 스케줄링이 좋은거 아닐까? 라는 생각이 들었습니다.다음은 제 생각을 담은 그림입니다.다음과 같이 23개의 warp가 overhead가 걸릴 수는 있겠지만 일이 끝나는 시간은 짧지 않을까?또 반대로 warp의 수가 작다는 것은 일 양이 많지 않다는 것이니 당연히 빨리 끝나는게 맞지 않을까?라는 생각을 했습니다.
-
미해결홍정모의 따라하며 배우는 C++
헤더파일 include 질문있습니다.
string 헤더파일을 include 해주지않아도 string 클래스와 멤버함수들까지 에러없이 컴파일되고 실행이 되는 이유를 모르겠습니다 ㅠㅠ 네임스페이스 때문인가 해서 4번줄 주석처리하고 std::string a3 = "hello";를 해도 마찬가지로 문제없이 컴파일이 되네요.. 요즘 컴파일러가 똑똑하다(?)라는말이 이런데서 나오는 걸까요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2 - E 왜 틀렸는지 모르겠습니다. 도와주세요.
안녕하세요!정말 잘 풀었다고 생각하고 제출했는데, 반례를 찾기가 어렵습니다. 링크 제출합니다. 감사합니다.https://www.acmicpc.net/source/58918072
-
해결됨it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
이거 크루스칼로 풀어도 풀리는데 맞는건가요?
const p = [ [1, 2, 6], [1, 3, 3], [3, 2, 2], [2, 4, 1], [2, 5, 13], [3, 4, 5], [4, 2, 3], [4, 5, 7], ]; solution(p, 5, 8); function solution(p, city, line) { p.sort((a, b) => a[2] - b[2]); const unf = Array(city + 1).fill(0); for (let i = 0; i < city + 1; ++i) unf[i] = i; function find(v) { if (v === unf[v]) return v; else return (unf[v] = find(unf[v])); } function union(f1, f2) { const c1 = find(f1); const c2 = find(f2); if (c1 != c2) { unf[c1] = c2; return true; } return false; } let cost = 0; for (let i = 0; i < p.length; ++i) { const [c1, c2, val] = p[i]; if (union(c1, c2)) { cost += val; } } return cost; } 크루스칼로 풀어도 풀리는데 이것도 맞는 풀이인가요?테스트 케이스가 더 잇엇으면 좋겟네요