월 33,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-x_1480 질문 있습니다
재귀를 이용해서 dp를 하는 방식이 아닌 선생님께서 배낭채우기 할 때 처럼 표를 완성하여 dp를 했는데 무엇이 문제 인지 잘 모르겠습니다. 이 문제에서는 표에 넣을 수 있는 보석의 인덱스를 저장을 했고표가 완성되면 넣어준 보석을 보석목록에서 제거하고 다음 가방을 완성하는 방식으로 코드를 작성했는데 무엇이 문제인지 잘 모르겠습니다.http://boj.kr/2b01ce15326a43c9ad3c8f340157eab3
- 해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-E 질문 있습니다.
현재 큰돌 강사님이 풀어주신 문제 해설은 이해 됐습니다. 그런데 scv갯수가 주어지고 한 개체를 한번에 여러번 공격을 못하기에 (모든 scv의 총 체력/한번에 줄 수 있는 데미지)이렇게 해서 구할 수도 있지 않을까 했습니다. 이를 바탕으로 코드를 썻으나 틀렸다고 나오는데 이게 왜 되지 않는지 몰라서 질문드립니다. 다음은 해당 코드입니다. http://boj.kr/dab5e07b909146eba418c449e7c219f9
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-A break 질문
http://boj.kr/2824498d59514215a51a4c55417f5914제가 쓴 코드입니다 선생님! j로 순회하고있는 for loop안에서 break를 했음에도 i로 순회하는 밖에 있는 for loop까지 나올 수 있는 이유가 무엇인가요?
- 해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-G 질문드립니다!!
안녕하세요 선생님.예제도 다 맞는데 4%에서 틀렸습니다.가 나옵니다 ㅠㅠ제 코드에 어느 부분이 문제인지 모르겠어서 질문드립니다..아래는 제가 제출한 코드입니다.#include<bits/stdc++.h> using namespace std; typedef long long ll; ll x, y, z, lo, hi, ret = -1; bool check(ll mid) { ll change_z = (double)(y + mid) / (x + mid) * 100; return change_z > z; } int main() { cin >> x >> y; // x : 게임 횟수, y : 이긴 횟수, z : 승률(y / x * 100) z = (double)y / x * 100; lo = 1; hi = 1e9; while(lo <= hi) { ll mid = (lo + hi) / 2; if(check(mid)) { hi = mid - 1; ret = mid; } else lo = mid + 1; } cout << ret << "\n"; }
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
makePermutation 질문합니다
재귀함수에는 기저사례가 있어야 재귀가 풀리는것은 이해를 했습니다. 제 궁금증은 왜 r값이 depth값과 같으면 재귀가 풀리는지 이해가 가지않습니다. r값과 depth값의 상관관계가 궁금합니다!
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
강의 공부 순서
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 강사님 이번에 처음 구매했는데, 공부순서를 어떻게 하면 좋을까요 ? 교안을 먼저 보고 교안에 있는 내용들을 충분히 숙지한 후에 동영상강의를 듣는게 맞을까요? 그리고 저는 C를 어느정도 공부한 후 C++은 문법만 살짝 맛봤는데, 강의 내용이 처음부터 알고리즘에 관한 내용이 나와서 어려운 부분이 꽤 많습니다 ㅠㅠ 추천해주실만한 공부순서 있으면 부탁드립니다.
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-S 시간초과 질문드립니다 !!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강사님강의 잘 듣고 잇습니다.강평 별5개 드렸습니다 항상 감사합니다 ^^강의도 들어보았고, 제가 작성한 코드와 로직은 같은 것이라고 저는 생각하는데.. 제출시 시간초과가 떠서요.. 무엇이 잘못됫는지 여쭙고 싶습니다.감사합니다. #include <bits/stdc++.h> using namespace std; string S; bool DP[2505][2505]; // 시작과 끝에 대한 팰린드롬 문자열의 길이 int DP2[2505]; #define INF 987654321 bool go(pair<int, int> Q){ if (Q.first >= Q.second){ return true; } bool& ret = DP[Q.first][Q.second]; if(ret) return ret; if (S[Q.first] == S[Q.second]){ ret = go({Q.first+1, Q.second-1}); } return ret; } int go2(int here){ if(here >= S.size()) return 0; int &ret = DP2[here]; if(ret != INF) return ret; for(int i = here; i < S.size(); ++i){ if (DP[here][i]){ ret = min(ret, go2(i+1)+1); } } return ret; } int main(){ cin.tie(NULL); cout.tie(NULL); ios_base::sync_with_stdio(false); cin >> S; for(int i =0 ; i < S.size(); ++i){ DP[i][i] = 1; for(int j = i+1; j < S.size(); ++j){ go({i,j}); } } fill(DP2, DP2+2505, INF); cout << go2(0); return 0; }
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 메모리초과 질문있습니다
#include <bits/stdc++.h> using namespace std; int R, C, fire_visitied[1000][1000]={0,}, jihoon_visitied[1000][1000]={0,}; int dy[4]={-1,0,1,0}, dx[4]={0,1,0,-1}; char arr[1000][1000]={0,}; pair<int,int> jihoon, fire; vector<pair<int,int>> fire_v; void fire_bfs(int y, int x){ queue<pair<int,int>> que; fire_visitied[y][x]=1; que.push({y,x}); while(que.size()){ pair<int,int> temp=que.front(); que.pop(); for (int i=0;i<4;i++){ int ny=temp.first+dy[i]; int nx=temp.second+dx[i]; if (ny<0||nx<0||ny>=R||nx>=C) continue; if (arr[ny][nx]=='#'||(fire_visitied[ny][nx]&&(fire_visitied[ny][nx]<fire_visitied[temp.first][temp.second]+1))) continue; fire_visitied[ny][nx]=fire_visitied[temp.first][temp.second]+1; que.push({ny,nx}); } } } int jihoon_bfs(int y, int x){ queue<pair<int,int>> que; jihoon_visitied[y][x]=1; que.push({y,x}); while(que.size()){ pair<int,int> temp=que.front(); que.pop(); for (int i=0;i<4;i++){ int ny=temp.first+dy[i]; int nx=temp.second+dx[i]; if (ny<0||nx<0||ny>=R||nx>=C) return jihoon_visitied[temp.first][temp.second]; if (jihoon_visitied[ny][nx]||arr[ny][nx]=='#') continue; if (jihoon_visitied[temp.first][temp.second]+1>=fire_visitied[ny][nx]) continue; jihoon_visitied[ny][nx]=jihoon_visitied[temp.first][temp.second]+1; que.push({ny,nx}); } } return 0; } int main() { cin >> R >> C; for (int i=0;i<R;i++){ for (int j=0;j<C;j++){ cin >> arr[i][j]; if (arr[i][j]=='J') jihoon={i,j}; if (arr[i][j]=='F') fire_v.push_back({i,j}); } } if (!fire_v.size()) fill(&fire_visitied[0][0],&fire_visitied[0][0]+1000*1000,INT_MAX); for (auto i:fire_v) fire_bfs(i.first,i.second); int answer=jihoon_bfs(jihoon.first,jihoon.second); if (answer) cout << answer; else cout << "IMPOSSIBLE"; }위 코드에서 메모리 초과가 납니다. 초기의 모든 불의 위치를 큐에 담아서 bfs 를 하는 것을 생각하지 못해 모든 불을 돌면서 bfs를 하도록 코딩했습니다. if (arr[ny][nx]=='#'||(fire_visitied[ny][nx]&&(fire_visitied[ny][nx]<fire_visitied[temp.first][temp.second]+1))) continue;이 라인을 통해서 fire 배열의 중복을 막은 것 같은데 왜 메모리초과가 나는지 모르겠습니다. 알려주시면 감사하겠습니다 ㅠ
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7 - C 질문
dfs 방식으로 풀었는데 메모리초과가 발생해 질문드립니다.재귀함수이다보니 함수호출이 잦아 발생하는거 같은데,해당 위치에서, 해당 위치에 도달하는 경로 중 가장 많이 이동한 경로만을 탐색하는 방식으로 진행했음에도 불구하고 메모리초과가 발생하다보니 어디가 문제인지 모르겠어서 질문드립니다 ㅜㅜ... #include <bits/stdc++.h> using namespace std; enum { E, S, W, N, }; // moves : 해당 위치에 도착했을 때, 지금까지 내가 몇번 움직였는지를 저장한다. int table[51][51], moves[51][51]; int n, m; int dy[4] = {0,1,0,-1}, dx[4] = {1,0,-1,0}; // dfs, 이동 가능한 방향으로 이동하는 함수 void go(int fy, int fx, int y, int x, int cnt) { // 움직인 횟수 저장 moves[y][x] = cnt; for(int i = E; i < N; i++) { int ny = y + dy[i]*table[y][x], nx = x + dx[i]*table[y][x]; // 최대 횟수로 이동한 경로만 통과 가능 if(ny < 0 || nx < 0 || ny >= n || nx >= m || table[ny][nx] == 0 || cnt + 1 < moves[ny][nx]) continue; // 무한 루프에 빠지게 될 경우, 탈출 if(fy == ny && fx == nx) { exit(0); } go(y, x, ny,nx, cnt + 1); } } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n >> m; for(int i=0; i<n; i++) { for(int j=0; j<m; j++) { char tmp; cin >> tmp; if(tmp == 'H') { tmp = '0'; } table[i][j] = tmp - '0'; } } go(0,0,0,0,1); cout << *max_element(moves[0], moves[0] + 51*51); return 0; }
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
오큰수 질문
안녕하세요 큰돌님 강의 잘 듣고 있습니다 혹시 오큰수 문제가 2주차 그래프이론, DFS, BFS에 분류된 이유가 뭘까요?? 풀이 방법은 스택인데 그래프에 분류된 이유가 궁금합니다 :)
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-H 2559번 질문있습니다!
안녕하세요 선생님 😃 누적합 관련해서 질문있습니다. 아래 글은 이전에 누적합 관련해서 이러한 로직을 사용하는 것은 어떤지 질문을 드렸던 글입니다.https://www.inflearn.com/questions/1233619/1%EC%A3%BC%EC%B0%A8-%EA%B0%9C%EB%85%90-9-%EB%88%84%EC%A0%81%ED%95%A9-%EC%A7%88%EB%AC%B8%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4 위의 로직을 사용해서도 문제를 풀어봤는데요, 테스트 케이스에서는 정답이었지만, 백준에 제출했을 때는 오답처리가 되어 무엇이 잘못된 것인지 잘 모르겠어서 질문드립니다. http://boj.kr/e912454a40e7424d98eccf86d7506db2
- 해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 9996번 재질문입니다!
안녕하세요 선생님 :) 선생님께서 푸신 풀이에서 하나를 입력하면 그에 대한 출력이 바로 나오는 것이 마음에 들지 않아서 모든 입력을 넣어야 출력이 나오도록 코드를 변경해보려고 했습니다. vector 컨테이너를 사용해서 입력된 문자열들을 컨테이너에 담고, 인덱스에 알맞는 문자열을 꺼내와서 DA인지 NE인지 출력해보려고 했는데요, 자꾸 vector out of range 에러가 나옵니다. 왜 범위를 벗어난건지 모르겠어서 질문드립니다 ㅠㅠ http://boj.kr/bc2da3a3773c401086b47cf818e8c0f1
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-H 질문있습니다.
선생님과 비슷하게는 풀었는데 70%쯤 가서 오답이라고 뜹니다.어디가 틀린건지 도저히 모르겠습니다https://www.acmicpc.net/source/77016787
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8주차 개념강의 영화수집 질문드립니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.선생님 안녕하세요 우선http://boj.kr/e25eb9ed4cf34c26bf2c12eff66b4e22강의를 들으면서 나름대로 짜봤더니 시간초과가 나는데 선생님의 코드로 main 부분을 바꾸면 시간초과가 안나는 이유가 궁금합니다! 부족한 지식에 해답을 주시면 감사하겠습니다 ㅠㅠ
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-A 질문있습니다!
큰돌님 코드중에 int& ret = dp[here][visited]; if(ret != -1) return ret;이 부분이 결국 메모이제이션으로 해석되었는데요. 강의중 {a,b,c} -> d 로 가려고 할때{a,b,c}의 순서는 상관없다고 말씀해주신게ret = min(ret, tst(i, visited | (1<<i)) + dist[here][i])이 부분을 거치면서 {a,b,c} -> d로 가기 전 이미 최소 경로로 갱신된 상태이기 때문인가요? 즉, 실제로 a->b->c->d와 b->c->a->d의 경로비용은 다르지만 위의 코드로 인해서 이미 최소비용 경로로 {a,b,c} 가 끝난 상황. 이라고 해석하면 될까요?
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
입력받는 부분에서 질문이있습니다
큰돌님의 풀이에서 value와 합연산을 하는 부분이 이해가 잘 안되어서 조금 고민을 해봤는데 결국 idx번째 비트 켜기와 같다고 생각했습니다.비트마스킹 강의에서 idx번째 비트 켜기를void idx번째비트켜기() { int S = 18; int idx = 0; S |= (1 << idx); cout << S << '\n'; }이렇게 알려주셨는데요.이를 사용해서 아래와 같이 입력을 받아도 무방한가요? 출력해봤을 땐 똑같이 나오는데 풀이를 value를 써서 하신 이유가 따로 있는지 궁금해서 질문남깁니다.for (int i = 1; i < n + 1; i++) { cin >> s; for (int j = 0; j < s.size(); j++){ if (s[j] == 'T') a[i] |= (1 << j); } cout << a[i] << '\n'; }
- 해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
연결리스트의 삽입 및 삭제
대학교에서 자료구조를 배우고 있는 학생입니다!연결리스트의 삽입 및 삭제 시간 복잡도 관련해서 질문이 있습니다.Q. 왜 연결리스트의 삽입과 삭제는 O(1)인가요? 라는 내용에서왜 이미 노드에 접근했다고 상정하고 시간복잡도를 계산하는지 이해가 가지 않습니다. 제 이해로는 노드에 접근하는 과정까지 시간복잡도 계산에 포함시켜야 한다고 생각하는데 자세한 설명을 듣고싶습니다!
- 해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-D 질문
안녕하세요 큰돌 님.7-D를 풀던 도중 메모이제이션 부분에서 질문드립니다.저는 메모이제이션을 2차원 배열로 하고자 했는데요,제가 생각하기에 나무가 2개뿐이기에 이동 횟수에 따라 나무의 위치를 특정할 수 있기 때문에"1번 움직이면 -> 2번 나무, 2번 움직이면 -> 1번 나무"와 같이 이동 횟수와 나머지 연산을 통해 '현재 위치'를 메모이제이션 하지 않아도 된다는 생각이 들었습니다.때문에 이동 횟수와 현재 시간만 메모이제이션 하고자 했습니다. 혹시 이런 식의 접근으로는 풀 수가 없는 것일까요?제가 제출한 코드도 첨부 드립니다.http://boj.kr/7d0a67eaf7b8428e912f596c29a971f1
- 해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 질문있습니다!
안녕하세요 선생님! 강의 보기 전에 직접 풀어봤는데요, 테스트 케이스도 정답대로 잘나오지만 백준에서는 틀렸다고 나옵니다 ㅠㅠ 파일 개수 입력패턴 입력파일 입력패턴의 첫 번째/마지막 문자와 파일의 첫 번째/마지막 문자가 같다면 DA출력, 아니면 NE출력몇 번을 확인해봐도 설계에 문제는 없어보이는데요, 어디가 틀려서 오답처리가 되는걸까요? http://boj.kr/8b7b4a2668c0446a92b0c459e4c67c77 #include <iostream>using namespace std;int cnt;string pattern;string input[100];int main(){cin >> cnt;cin >> pattern;for (int i = 0; i < cnt; i++)cin >> input[i];for (int i = 0; i < cnt; i++){if (pattern[0] == input[i][0] && pattern[pattern.size() - 1] == input[i][input[i].size() - 1])cout << "DA" << endl;elsecout << "NE" << endl;}return 0;}
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
a.cpp 세팅 ! (m1 사용 중)
저는 맥북 m1 사용 중입니다.a.cpp 세팅 관련해서 자꾸 안 돼서 질문 남겨요! 현재 저는 cd /usr/local/include 여기서 했다가 안 돼서cd /Library/Developer/CommandLineTools/usr/include mkdir bits 또 여기에서 다시 했습니다! 그럼에도 되지 않아요.. ❯ g++ -std=c++14 -Wall a.cpp -o test.outIn file included from a.cpp:1:/Library/Developer/CommandLineTools/usr/include/bits/stdc++.h:22:1: error: expected unqualified-id14^/Library/Developer/CommandLineTools/usr/include/bits/stdc++.h:70:1: error: expected unqualified-id15^2 errors generated. 이렇게 나와요.아래는 제가 터미널에서 확인한 겁니다!❯ sudo vi stdc++.h Password: ❯ cat stdc++.h #ifndef _GLIBCXX_NO_ASSERT #include <cassert> #endif #include <cctype> #include <cerrno> #include <cfloat> #include <ciso646> #include <climits> #include <clocale> #include <cmath> #include <csetjmp> #include <csignal> #include <cstdarg> #include <cstddef> #include <cstdio> #include <cstdlib> #include <cstring> #include <ctime> #if __cplusplus >= 201103L #include <ccomplex> #include <cfenv> #include <cinttypes> #include <cstdbool> #include <cstdint> #include <ctgmath> #include <cwchar> #include <cwctype> #endif // C++ #include <algorithm> #include <bitset> #include <complex> #include <deque> #include <exception> #include <fstream> #include <functional> #include <iomanip> #include <ios> #include <iosfwd> #include <iostream> #include <istream> #include <iterator> #include <limits> #include <list> #include <locale> #include <map> #include <memory> #include <new> #include <numeric> #include <ostream> #include <queue> #include <set> #include <sstream> #include <stack> #include <stdexcept> #include <streambuf> #include <string> #include <typeinfo> #include <utility> #include <valarray> #include <vector> #if __cplusplus >= 201103L #include <array> #include <atomic> #include <chrono> #include <condition_variable> #include <forward_list> #include <future> #include <initializer_list> #include <mutex> #include <random> #include <ratio> #include <regex> #include <scoped_allocator> #include <system_error> #include <thread> #include <tuple> #include <typeindex> #include <type_traits> #include <unordered_map> #include <unordered_set> #endif