묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-n 홀수의 경우가 잘 이해가 되지 않습니다.
if (b % 2) ret = (ret * a) % c;홀수의 경우 a를 한번 더 곱해서 값을 return하게 되면(a^b * a^b * a)^2 % c 하는 경우가 생기는 것 같은데 적상적으로 작동하는 이유가 궁금합니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
백엔드 공부용 맥 사양
맥북에어 m1 또는 m2 ...16gb 256ssd백엔드 진로 공부용으로 충분한 사양일까요?? 조언 부탁드리겠습니다 선생님.
-
미해결홍정모의 따라하며 배우는 C++
강의자료
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 혹시 강의자료 같은 파일이 있을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
m1 세팅 재질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.말씀해주신 방법대로 했고 bits인지 확인 후 해도 다음과 같이 에러가 발생합니다. 수업자료에 있는 m1 추가 방법으로해도 오류가 발생하네요;;whoami 도 첨부하겠습니다. 감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1주차 문제로 연습하는 시간복잡도 Q3 질문 있습니다!
안녕하세요go함수가 2n-1 번 호출된다는 것은 이해했습니다.그런데 main함수에 보면 for문이 하나 더 있는데, 그럼 이 for문 내에서 n번 도는 거니 n + (2n-1) = 3n-1 이 되어야 하는 것 아닌가요?? 사실 빅오표기법에 의하면 둘다 O(n) 이어서 크게 중요하진 않을 수 있으나 혹여나 제가 잘못 이해한 부분이 있다면 바로잡고 싶어 질문드립니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
교안 p.46 질문
#include <bits/stdc++.h> using namespace std; int n; int main() { cin >> n; int a[n]; memset(a, 0, sizeof(a)); for(int i : a){ cout << i << " "; } return 0; }여기서 선생님이 에러가 난다고 했는데, 제 컴퓨터 vscode에서는 왜 에러 안뜨고 실행이 잘 되는 이유를 알고싶습니다. 제가 리눅스 터미널에서도 실행시켜 봤는데 에러가 발생하지 않는데, 원인을 잘 모르겠습니다.
-
미해결홍정모의 게임 만들기 연습 문제 패키지
정답은 어디서볼수있나요?
강의 마지막에 직접 진행보라는 내용에 대한 답은 없는건가요?굉장히 당황스럽네요;;
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-M 반례 질문입니다!
안녕하세요, 큰돌님!16235 문제를 풀던 중 아래 코드가 왜 안되는지 궁금합니다.맵에 각각 벡터를 넣지 않고 총 살아있는 나무를 넣는 우선순위 큐를 사용해서 구현 해보았습니다.우선순위 큐는 나이를 기준으로 오름차순 합니다. https://www.acmicpc.net/source/72058303 반례는 이것인데, 제 논리 대로라면 된다고 생각하는데 여기서 잘못된 답을 뱉어내네요... 5 2 7 2 3 2 3 2 2 3 2 3 2 2 3 2 3 2 2 3 2 3 2 2 3 2 3 2 2 1 3 3 2 3 답 : 71
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-J 질문
큰돌님 안녕하세요! 궁금한 게 있어서 질문 드려요~해당 문제 dfs로 풀어봤는데 이렇게 풀어도 괜찮을까요?좋은 수업 잘 보고 있습니다 감사합니다.http://boj.kr/98095677a0504f42a0d20b8758029ce2
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
안녕하세요 89: 토마토 문제 관련 질문있습니다!
강의 항상 잘듣고있습니다!89 토마토 문제 관련 제가 짠 코드에서 결과값은 문제 없이 나오지만 컴파일러가 아래와 같은 New_allocator 창을 띄우면서 pause 되는 문제가 있는데 코드를 아무리 봐도 에러가 왜 발생하는지 모르겠어서 질문 올립니다 . #include<iostream> #include<vector> #include<algorithm> #include<cmath> #include<queue> using namespace std; //넘겨야할 인자가 x,y,day 세개라서 class 필요 class Tmt{ public: int x; int y; int day; Tmt(int a, int b , int c){ x = a; y = b; day = c; } }; int main(){ freopen("input.txt","rt",stdin); int m,n; cin >> m >> n; // m = j = 가로 // n = i = 세로 vector<vector<int>>map(m+2,vector<int>(n+2,1)); //얘는 어차피 익으면 1로바뀌니까 ch가 따로 필요없을 것 같음. //vector<vector<int>>ch(n+2,vector<int>(m+2,0)); queue<Tmt>q; //상하좌우 탐색용 방향벡터 int dx[] = {1,0,-1,0}; int dy[] = {0,1,0,-1}; // input 읽어오는 동시에 초기 셋팅값 확인하기 int flag = 0; // flag 1 = 값이 1인 좌표 존재 for(int i = 1; i<=n ; i++){ for(int j = 1 ; j <=m;j++ ){ int temp; cin >> temp; map[i][j] = temp; if(map[i][j]==1){ flag = 1; // x,y 좌표 및 초기 0 day 삽입 및 ch 체크 q.push(Tmt(j,i,0)); } //cout << map[i][j]; } //cout << "\n"; } if(flag == 0){ //익은게 하나도없어서 결국 아무것도 안변함 -1반환 cout<<-1; return 0; } if(q.size() == n *m){ //시작때부터 다 익어있음 cout<<0; return 0; } int res = 0; //초기 setting된 q 활용해서 day 진행 while(!q.empty()){ Tmt temp = q.front(); int t_x = temp.x ; int t_y = temp.y; int t_day = temp.day; res = t_day; cout << " t_x: " << t_x << " t_y: "<<t_y<<" t_day: "<<t_day << "\n"; q.pop(); for(int i = 0; i<4;i++){ //cout <<" t_x+dx[i]: " <<t_x+dx[i] << " t_y+dy[i]: "<<t_y+dy[i] << " m: " << m << " n: "<<n << "map[t_x+dx[i]][t_y+dy[i]]: "<<map[t_x+dx[i]][t_y+dy[i]]<<"\n"; if((0<t_x+dx[i]<=m) && (0<t_y+dy[i]<=n) &&(map[t_y+dy[i]][t_x+dx[i]] == 0)){ //cout <<" t_x+dx[i]: " <<t_x+dx[i] << " t_y+dy[i]: "<<t_y+dy[i] << " m: " << m << " n: "<<n<<"\n"; map[t_y+dy[i]][t_x+dx[i]] = 1; q.push(Tmt(t_x+dx[i],t_y+dy[i],t_day+1)); } } } cout << res; return 0; }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
값은 정상적으로 나오는데 어디가틀린지모르겠습니다.
안녕하세요 큰돌님. 언제나 늘감사하게 수업듣고있습니다.vscode에서는 이코드로돌리면 정상적으로 나오는데 어디가틀린지 모르겠네요 한번만 봐주실수있을까요? 감사합니다.#include<bits/stdc++.h> using namespace std; string a[104][104]; int h,w,cnt,ret[104][104]; string s; bool flag; int main() { cin >> h >> w; for(int i=0; i<h; i++){ for(int j=0; j<w; j++){ cin >> s; a[i][j] = s; } } for(int i=0; i<h; i++){ flag = 0; for(int j=0; j<w; j++){ if(a[i][j] == "c"){ cnt = 0; flag = 1; ret[i][j] = cnt; } if(flag && a[i][j] == "."){ cnt++; ret[i][j] = cnt; } else if(!flag) { flag = 0; ret[i][j] = -1; } } }; for(int i=0; i<h; i++){ for(int j=0; j<w; j++){ cout << ret[i][j] << " "; } cout << "\n"; } return 0; }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-I 런타임 에러
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 큰돌님! 2-I를 푸는 과정에서 코드를 수정해도 똑같은 오류가 나서 질문 남깁니다..코드를 작성할 때마다 런타임에러가 나는데 이유를 모르겠습니다.http://boj.kr/a34c68854cf14b81923e976a22e91188
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-L 주몽 문제 질문입니다
안녕하세요 큰돌님. 현재 강의를 듣고 있는 수강생입니다. 현재 1-L문제를 Vector형식에서 이중 for문을 이용해서 푸는데 고유한 값을 만들 수 있는 두개의 값이 있을 경우 이후 두개의 값을 0으로 처리하여 첫 번째 for문에서 0이 있을 경우 두 번째 for문으로 들어가지 않게 처리를 했는데요. 그 처리를 하니 백준에서 틀렸다고 나옵니다. 하지 않았을 경우에는 맞다고 표시가 되고요. 그래서 이유가 뭔지 궁금합니다. http://boj.kr/561f58234a27422bb2b2e02606e349fa
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-N 비효율적으로 풀었는데 이렇게 접근해도 되나요?
안녕하세요 큰돌님,다름이 아니고 3-N 완전이진 트리문제 이거 정석적인 방법이 잘 안떠올라서 무식하게 풀었는데 이렇게 풀어도 괜찮은가요?항상 문제 먼저 풀어보고 안풀리면 큰돌님 영상보는 식으로 학습중이거든요.... 이번에는 영상 보기전에 풀어서 통과가 되었지만 이런 방식으로 문제에 접근해도 괜찮은 건지 여쭙니다. #include <bits/stdc++.h> using namespace std; int K, ksize, input; vector<vector<int>> result; vector<int> v; int main() { cin >> K; ksize = pow(2, K) - 1; for (int i = 0; i < ksize; ++i) { cin >> input; v.push_back(input); } while (v.size()) { vector<int> temp; for (int i = 0; i < v.size(); i += 2) { temp.push_back(v[i]); } result.push_back(temp); for (int i = v.size() - 1; i >= 0; i--) { if (i % 2 == 0) { v.erase(v.begin() + i); } } } for (auto i = result.rbegin(); i != result.rend(); ++i) { for (const auto &n : *i) { cout << n << ' '; } cout << '\n'; } return 0; }
-
미해결Do it! 알고리즘 코딩테스트 with C++
백준 11404 플로이드 문제 질문있습니다.
입력을 받을 때 for (int i = 0; i < m; ++i) { int a, b, c; cin >> a >> b >> c; for (int i = 0; i < m; ++i) { int a, b, c; cin >> a >> b >> c; if (adj[a][b] > c) adj[a][b] = c;위처럼 입력을 받았는데요여기서 adj[a][b] = c;이게 빠지면 틀렸다라고 나오는데 왜 틀린것인지 이해가 안가는데 설명 부탁드립니다..
-
미해결Do it! 알고리즘 코딩테스트 with C++
문제 85번 질문드립니다
#include<iostream>using namespace std;int T[16];int P[16];int D[16];int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); //freopen("input.txt", "r", stdin); int N; cin >> N; for (int i = 0; i < N; i++) { cin >> T[i] >> P[i]; } for (int i = N - 1; i >= 0; i--) { if (i + T[i] > N) D[i] = 0; else { D[i] = max(D[i + 1], P[i] + D[i + T[i]]); } } cout << D[0];}여기서 초기화할 때 왜 0으로 하면 14프로까지 갔다가 틀렸습니다가 나오는지 잘 모르겠습니다 'i + T[i] > N' 다음 조건이 성립하면 항상 점화식의 값이 0이 나오는 것이 아닌가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
선생님 2주차 개념 #9의 예제 문제 질문있습니다.
해당 코드는 제가 직접 구현한 문제 해답 코드인데요. 5 51 0 1 0 11 1 0 0 10 0 0 1 10 0 0 1 10 1 0 0 0의 테스트 케이스를 통과하도록 짜봤습니다.n * m 의 인접행렬을 만들고 1을 발견할 시 그 위치에서부터 ↑→↓←의 순으로 탐색을 하며 네 방향의 탐색을 마쳤을 때 결과가 모두 1이 아니라면 결과값을 1씩 증가시켜 답을 출력하는 코드입니다.첫번째 질문으로는 제가 구현한 코드가 너무 비효율적인 것 같습니다. 어떻게하면 이 코드에서 더 좋은 코드로 발전시킬 수 있을까요?두번째 질문으로는 제가 구현한 방식을 dfs라고 할 수 있는걸까요? 그냥 감으로 작성한 코드라서 이게 될줄 몰랐습니다..코드는 다음과 같습니다.단순히 구현만 하는것으로는 정답이겠지만 만약 이런 문제가 나온다면 시간초과나 메모리 초과가 날 게 분명해 보입니다../* 연결된 육지는 모두 오염 바다로는 갈 수 없다. 오염시킬수 있는 방향은 상 하 좌 우 네방향 최소 몇번을 이동해야 모든 육지를 오염시킬 수 있는가? 1 : 육지 0 : 바다 범위 1 <= N <= 100 1 <= M <= 100 예제 입력 입력은 맵의 세로길이 N과 가로길이 M이 주어진다. N * M의 맵이 주어진다. 5 5 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 출력 4 */ #include <bits/stdc++.h> using namespace std; const int dy[] = {-1, 0, 1, 0}; const int dx[] = {0, 1, 0, -1}; int n, m, findCount = 0; void dfs(int y, int x, int **ajm){ ajm[y][x] = 0; int check = 0; for(int i = 0; i < 4; i++){ int ny = y + dy[i]; int nx = x + dx[i]; if(ny < 0 || ny >= n || nx < 0 || nx >= n) { check++; if(check == 4){ findCount++; return; } continue;} if(ajm[ny][nx] != 1) { check++; if(check == 4){ findCount++; return; } continue; } if(ajm[ny][nx] == 1){ dfs(ny,nx,ajm); return; } } } int main(){ int num; cin >> n >> m; int **ajm = new int*[n]; for(int i = 0; i < n; i++){ ajm[i] = new int[m]; } for(int i = 0; i < n; i++){ for(int j= 0; j < m; j++){ cin >> ajm[i][j]; } } for(int i = 0; i < n; i++){ for(int j= 0; j < m; j++){ if(ajm[i][j] == 1){ dfs(i, j, ajm); } } } cout << findCount; return 0; }
-
해결됨홍정모의 따라하며 배우는 C++
L value, R value
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요, 제가 초반 강의들 중에서 스킵한 강의들이 좀 있는데, r value, l value에 관한 내용이 있는 강의가 어디쯤에 있을까요??
-
미해결C++20 훑어보기
카운팅 세마포어, 바이너리 세마포어
안녕하세요. 세마포어를 이전에 사용할 때는 createsemaphore라는 함수로 세마포어를 만들어서 사용했는데, 편하게 사용할 수 있게 c++20에서 추가된 건가요?
-
해결됨C개발자를 위한 최소한의 C++
예외 클래스에서 catch 안의 데이터형이 참조자인 이유
안녕하세요. 강의 잘 보고 있습니다.강의를 듣다가 궁금한 것이 생겨서 질문 드립니다. catch(MyException &exp) { // 생략 }이 강의 예제에서 catch의 예외 데이터형에 클래스 참조자를 받도록 하였는데 만약 아래처럼 참조자를 사용하지 않으면 복사생성이 되나요?catch(MyException exp) { // 생략 }