월 33,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결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
- 해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3 - I 질문있습니다
안녕하세요 큰돌님강의 잘 듣고 있습니다.3 - I (17071번)를 푸는데 bfs의 경계조건을 바로 밑에 코드에서for(int next : {here + 1, here - 1, here * 2}){ if(next < 0 || next > max_n || visited[turn % 2][next]) continue; 아래와같이 바꾸면 런타임 에러 (OutOfBounds)가 발생하는데 그 이유가 궁금합니다.for(int next : {here + 1, here - 1, here * 2}){ if(visited[turn % 2][next] || next < 0 || next > max_n) continue;
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
정답 코드와 거의 비슷한데 틀렸습니다
https://www.acmicpc.net/source/76745635 정답 코드에서는 어떤 정점에 도착할때마다 최단거리일경우 +1을 해서 출력하는데 저는 정답 코드에 도착할때만 +1을 하도록 만들었습니다. 이부분에서 반례가 있을까요?아니면 정답코드에서 최대범위가 200000인 이유가 있나요?
- 해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-B Counting Star 질문있습니다!
안녕하세요 선생님 🙂 저번 질문에서 수강평 작성해달라고 말씀해주셨었는데요, 수강평은 강의를 모두 들은 후에 작성하는 것이 맞을 것 같아서 나중에 작성하겠습니다^^오늘은 Counting Star 질문이 있습니다. 강의듣기 전에 먼저 풀어봤는데요, 결과 값은 정확히 나오고 있으며 선생님의 풀이와 차이가 있다면array를 vector로 사용char가 아닌 int로 for문을 사용이렇게 2가지의 차이 밖에 없는 것으로 보이지만 백준에 제출하면 자꾸 오답으로 나옵니다 ㅠㅠ 아래는 제가 한 풀이 방식입니다. 의심되는 부분은 for문 안의 if (S[i] == NULL) break; 이 구문인데요, 문자열의 끝이 공백문자열이다보니 이 구문을 통해 공백문자열을 만난다면 break를 통해 반복문을 빠져나오도록 구현하였습니다. 어떤 문제가 있길래 자꾸 오답처리가 되는걸까요? #include <iostream>#include <vector>using namespace std;int main(){ string S; cin >> S; vector<int> vec(26); for (int i = 0; i < 26; i++) { if (S[i] == NULL) break; vec[(int)S[i] - 97]++; } for (auto i : vec) cout << i << " "; return 0;}
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-V 문제 질문
안녕하세요, 큰돌님 7-v 질문 드립니다. 제가 작성한 코드가테스트 케이스는 통과하는데 틀리는 이유를 모르겠습니다.이유 좀 알 수 있을까요ㅠhttp://boj.kr/9d9a4a384f4441e7aa92861ac25e594f
- 해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
LIS 예시 문제 boj 11053에서 lower_bound() 질문드립니다.
안녕하세요 선생님lower_bound()를 사용하는 방법으로 boj 11053을 풀면 답은 맞지만 로직 흐름이 맞지 않는 테스트 케이스가 있습니다. 410 20 30 11위 input을 입력하면 출력으로10 0 0 0 10 20 0 0 10 20 30 0 10 11 30 0 이렇게 나옵니다. 이러한 경우를 고려하지 않아도 괜찮나요?
- 해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1주차 개념 #9 누적합 질문있습니다!
안녕하세요 선생님 🙂 쉽게 설명해주셔서 항상 감사합니다 ^^ 다름이 아니라 누적합 개념강의에서 선생님께서는 아래의 방식으로 설명해주셨는데요,0번 인덱스는 비워둠psum배열을 전역으로 설정하여 값들을 전부 0으로 초기화psum[1]부터 psum[i - 1] + a[i]를 하시면서 누적합을 계산 아래 방식이 효율적인지 궁금합니다.0번 인덱스 사용psum배열에 a배열을 복사psum[0]은 그대로 둠psum[1]부터 psum[i] + psum[i - 1] 아래는 선생님께서 설명해주신 승철이가 뇌를 잃어버린 문제에 대한 제 풀이의 전체 코드입니다. #include <iostream>#include <vector>#include <iterator>using namespace std;#define N 8#define M 3int A, B;int temp[N];int main(){ int arr[N] = { 1, 2, 3, 4, 5, 6, 7, 8 }; copy(begin(arr), end(arr), begin(temp)); for (int i = 1; i < N; i++) temp[i] += temp[i - 1]; for (int i = 0; i < M; i++) { cin >> A >> B; cout << temp[B] - temp[A - 1] << endl; } return 0;}
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-A 어디서 틀렸는지 궁금합니다.
http://boj.kr/7effb2a3b4f44d839abcd6ebb1898979 1. 비트마스킹을 이용한 조합 구하기.2. 최소 영양소를 만족하는 조합 걸러내기.3. 그 중 최소 가격 갱신하기.4. 그때의 음식 인덱스 모으기.순으로 풀어갔는데 4에서 막혔습니다. 왜 틀린걸까요?
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
이 코드가 왜 틀렸는지 궁금합니다
일단 오류를 찾아서 고쳐 정답이 맞긴 했습니다.그런데 아무리 봐도 이해가 안돼서 질문글을 남깁니다.고친부분은 dfs함수에 ret을 전역변수가 아닌 지역변수로 바꾼건데 전역변수로 되어있다해도 함수 시작시 초기화를 해주는데 의미가 있나요? https://www.acmicpc.net/source/76553884