묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-I 응용 질문있습니다 :)
안녕하세요 선생님 🙂 이 문제에 숨바꼭질 2번의 가장 빠른 시간으로 동생을 찾는 방법의 수와 숨바꼭질 4번의 이동 경로를 출력하는 방법을 넣어보고 싶어서 응용을 해봤습니다. http://boj.kr/140dd82426b947a59d51672a9bda4d0a 가장 빠른 시간으로 동생을 찾는 방법의 수를 출력하는 로직이 올바르게 짜여있는 것인지 궁금합니다. int prv[2][500004]; for (int i = K; i != N; i = prv[cnt%2][i]) { vec.push_back(i); //cnt--; } vec.push_back(N); reverse(vec.begin(), vec.end()); for (const auto& v : vec) { cout << v << " "; }prv배열을 2차원으로 했을 때, 1, 10을 입력하면 올바른 값이 나오지만 5, 17과 17, 5는 출력 자체가 되지 않습니다. prv배열을 1차원으로 했을 때는 5, 17과 17, 5는 출력이 되지만(5, 17만 올바른 값 출력) 1, 10은 출력 자체가 되지 않습니다. 혹시나 해서 for문에 cnt--를 넣어봤지만, 제대로 출력되던 1, 10조차 출력 자체가 되지 않았습니다. 이유와 해결방법이 궁금합니다.17 -> 16, 15, 14, 15 5 -> 6, 8, 11, 15위의 경우처럼 중복되는 경로가 있는 경우는 17 16 15까지만 출력이 됩니다. 14가 출력되지 않는 이유는 16 뒤에 출력되는 15가 첫번째 방문하는 15가 아닌 마지막 15를 방문해서 그런걸로 이해했는데 제대로 이해한게 맞을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-I 질문있습니다 :)
안녕하세요 선생님 🙂 헷갈리는 부분이 있어서 질문 드립니다.http://boj.kr/4218885d4f8c48ae84582162f1d262f0 55번째 줄 while 문 안의 아래 if문을 사용하는 이유를 모르겠습니다.if (visited[cnt % 2][K]) { flag = true; break; } /* 17 -> 16, 15, 14, 15 5 -> 6, 8, 11, 15 */수빈이가 동생이 방문할 곳을 미리 방문할 경우에 왔다갔다 하는 부분을 구현한 것이라고 설명해주셨는데요, 로직은 이해가 됩니다. if (nx == K) { flag = true; break; } /* 17 -> 16, 15, 14, 15 5 -> 6, 8, 11, 15 */하지만, 위의 (17, 5)라는 입력 값만 생각했을 때는 78번째 줄의 nx = K일 경우에 반복문을 빠져나가는 로직으로도 충분히 정답을 도출해낼 수 있기 때문에, 55번째 줄의 조건이 필요한 이유를 모르겠습니다. 혹시 제가 놓치고 있는 개념이나 반례가 있을까요? 이러한 경우가 있을지는 모르겠지만 17 -> 16 -> 15 -> 14 -> 15 -> 16 -> 15같이 15를 3번 왔다갔다 해야하는 경우가 있다면, 55번째 줄과 78번째 줄 모두 정답을 도출해낼 수 없습니다. 이건 너무 많이 간거죠..?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-J 질문있습니다.
http://boj.kr/d4a41da7d56b4acfa374613ed7723eeb비트마스킹을 사용하지않고 무식하게 풀어보았는데 vscode에서는 계속해서 segmentation fault 오류가 나오고 백준에서는 메모리 초과가 뜹니다.이렇게는 해결이 어려울까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-L 재귀함수 질문이에요
http://boj.kr/3bb8f4f305654583be23c4a1f1aac037코드가 거의 큰돌님이 작성해주신거랑 로직이 비슷한데 왜 제가 작성한 코드는 시간초과가 발생하는지 모르겠습니다.
-
미해결홍정모의 따라하며 배우는 C++
C++ 문법 공부 이후
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 교수님.C++ 문법 공부 이후에 프로그램을 만들어보고 싶은데요제가 '업무 자동화 프로그램'을 만들어보고 싶은데, 이를 하려면 무엇을 공부해야 할까요? 제가 찾아본 것은 winapi, MFC 등을 공부해보라는 것을 찾았는데, 이 내용이 좀 그동안 봤던 코드들이랑 너무 이질적이라 제가 접근하기에 어렵더라구요. 이 방법에 대해 교수님께서 좀 알려주시면 정말 감사할 것 같습니다! 또 좋은 책이나 참고자료가 있다면 알려주시면 감사합니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-X 질문있습니다
int go(int here, int yamyam, int capacity){ if(here == m) return 0; int &ret = dp[here][yamyam][capacity]; if(ret) return ret; ret = max(ret, go(here + 1, yamyam, c)); // <--- 이부분 for(int i = 0; i < n; i++){ bool isbeforeYAM = (1 << i) & yamyam; bool isYAMCAN = (capacity - a[i]) >= 0; if(!isbeforeYAM && isYAMCAN)ret = max(ret, go(here, yamyam | (1 << i), capacity - a[i]) + 1); } return ret; }이 go라는 메소드에서 ret = max(ret, go(here + 1, yamyam, c)); 이 이해가 가지 않습니다.다음 가방으로 넘어가는데 왜 현재의 (가방, 보석, 용량) 에 값을 저장하나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-h 질문있습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. https://www.acmicpc.net/submit/4659/85159031안녕하세요. 선생님 문제를 푸는 와중에 예시 답안은 맞는데 제출하면 틀렸다고 하는데 어떤 부분이 틀렸는지 잘 모르겠습니다 ㅠㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 질문있습니다 :)
안녕하세요 선생님 🙂 오랜만에 질문드리는 것 같습니다 ㅎㅎ 사실 이 문제에서 모르는 부분이 있는 것은 아니지만, 별거 아닌 실수로 인해서 발생한 부분에 의문이 생겨서 질문 드립니다. 실수로 visited배열을 전체 초기화가 아닌 54 * 54만큼만 INF로 초기화시켜주었습니다. 테스트케이스는 4 * 4 배열인데요, 실수를 했어도 테스트케이스의 범위는 지켰기 때문에 결과 값이 정상적으로 나와야 한다고 생각합니다. 하지만, 테스트케이스의 결과 값이 "IMPOSSIBLE"로 출력이 됩니다. 이유가 뭘까요..?? http://boj.kr/b731d2b778284e37b9aa54fb079a30ba
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5 - G 투포인터 low,high 시작 위치 질문
http://boj.kr/0078fb786ad54f33b71c760f7301177f우선 보았을 때, 저는 low를 0 high를 a.size()로 두었습니다. 그리고 아래와 같은 로직으로 짰는데, 시간 초과가 나더라구요... 일반적으로 실행해도 감소만 시키느라 답변이 나오지더 않더라구요.low, high를 처음에 두신 이유가 있으신지 궁금합니다! ll l = 0, r = a.size(); while (l != r) { ll sum = 0; for (ll i = l; i < r; i++) sum += a[i]; if (sum < n) { l++; } else if (sum > n) { r--; } else if (sum == n) { l++; ret++; } }
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5 - E 풀이까지 가는 생각
항상 그리디가 어려웠는데 오랜만에 풀어보니 답은 맞는데, 뭔가 이게 맞나라는 생각이 너무 들어서 생각 흐름이 맞는지 질문드립니다!블로그에 개인적으로 정리한 글이라 반말인점 무시해주시면 감사하겠습니다 ㅠ 무식하게 하기엔 범위가 10만이고 범위가 존재해서 그리디가 생각났다. 우선, 위 사진처럼 생각해봤다. 순서 정렬은 start 시간 기준으로 하는게 맞다. 왜냐하면 회의 시간이 짧은 걸로 sort 하면 100000에 시작하고 100001로 끝나는 게 처음에 배치되기 때문이다. 끝도 의미가 없으니 시작으로 순서 정렬을 잡았다.그럼 어떤 예외가 있을까 싶었는데 사진의 맨 위에 엄청 긴 선 같은 부분이 문제다. start가 가장 작으니 배열의 처음에 위치하기 때문이다. 따라서if (prev_s < s && e < prev_e)위와 같이 이전 값의 사이에 현재 해당 값이 존재하면 (이전 = 긴 선, 현재 = 긴 선 다음으로 start가 빠른 선) 면적은 줄지만 다른 회의가 잡힐 공간 자체는 늘어나게 되니 무조건 이득인 것이다. 따라서 저럴 땐, 이전 친구를 pop해주고 현재 친구를 push 해줬다.이외에 이전의 끝과 현재의 시작이 겹치거나 더 크면 회의실을 잡을 수 있으니 push 해준다. 반대의 경우는 회의중이기 때문에 회의실을 잡지 못하기 때문에 따로 push 해주지 않는다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 질문있어요
http://boj.kr/5bd8b854c5154aa3bebd77b37b07b8a1시간복잡도는 O(n*comp)으로 보이고 메모리도 넘지 않는 것 같은데 예제들은 정상 작동하면서 제출할때는 틀렸다고 나옵니다. 반례가 무엇인지 도저히 모르겠습니다.
-
해결됨[초급] QML 프로그래밍 2편
TableView에서 ImplicitWidth, ImplicitHeight와 일반 width, height의 차이가 궁금합니다.
안녕하세요.TableView의 예제에서 ImplicitWidth와 ImplicitHeight 대신 width, height를 그냥 사용하였더니, Rectangle의 사이즈가 설정해준 값을 유지하지 못하고 그 보다 작은 정사각형 형태로 실행되어버리네요.혹시 Component 내에서 Rectangle 사용 시에는 Implicit를 width와 height에 꼭 붙여서 사용해야 하고, 일반 width와 height는 사용하면 안되는 걸까요?
-
해결됨[초급] QML 프로그래밍 2편
GridView에서 Padding과 Margin의 차이가 있을까요?
안녕하세요.GridView 예제에서 topPadding과 같이 Padding을 통해 간격을 설정하는 거 같던데, Margin을 사용하는 것과 차이가 있는걸까요?
-
해결됨[초급] QML 프로그래밍 2편
ListView에서 currentIndex 작동안됩니다.
안녕하세요.ListView의 예제에서 currentIndex: 50 으로 두고 실행시켜보아도 실행 시 시작은 항상 0에서 시작합니다.currentIndex: 50이면 실행 직후 창에 보이는 시작 인덱스가 0이 아닌 50에서 시작할 거 같은데 맞을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-B 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. #include <bits/stdc++.h> using namespace std; int n,m, visited[51][51], ret = 0; char a[51][51]; const int dy[] = {-1,0,1,0}; const int dx[] = {0, 1,0,-1}; void bfs(int y, int x){ queue<pair<int,int>> q; memset(visited, 0, sizeof(visited)); visited[y][x] = 1; q.push({y,x}); int cnt = -1; 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 + dx[i]; if(ny < 0 || nx < 0 || ny >= n || nx >= m || a[ny][nx] == 'W' || visited[ny][nx]) continue; visited[ny][nx] = visited[y][x] + 1; q.push({ny,nx}); ret = max(ret, 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' && visited[i][j] == 0){ bfs(i,j); } } } cout << ret-1 << "\n"; return 0; }안녕하세요 선생님 제가 풀었던 문제인데 if(a[i][j] == 'L' && visited[i][j] == 0){ bfs(i,j); } visited[i][j] == 0 이분분 때문에 자꾸 틀렸다고 나옵니다. 생각 해봐 없어서 되긴 하지만 있었도 문제가 없지 않나요?
-
미해결[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
부록 강의를 듣지 않아도 수료증을 받을 수 없을까요?
안녕하세요, 강의를 결제 후 완강하여 수료증을 제출해야 하는 상황입니다.그런데 보니 부록 강의가 30시간이 넘는데도 불구하고, 해당 강의를 완강하지 않으면 수료증이 나오지 않는 것 같아요.커리큘럼에 필수적인 내용이 아니라면, 부록 강의를 듣지 않아도 수료증을 발급 받을 수 없을까요?감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R 맞왜틀 질문드립니다!
http://boj.kr/e89b80b1d57b459f8b5e7bbeb1ff1dc2 강의를 보지 않고 풀었을 때 완벽히 푼 거 같고 예시도 다 통과하는데 77%에서 틀렸다고 뜹니다.. 뭐가 잘못된 건지 궁금합니다..!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-O 반례나 풀이오류를 알 수 있을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.자바입니다..백준 질문게시판과 강의 커뮤니티의 반례는 다 성공했습니다.https://www.acmicpc.net/source/share/2972691d0fcd4550a0389bb53efe4391
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
오브젝트 설계 #1 질문
34분 50초ObjectManager::Remove(Object* object)에서 auto it = std::remove(...);_objects.erase(it, _objects.end());대신에 _objects.erase(findIt); 를 해도 findIt 에는 object에 대한 iterator 값이 저장되어 있으니 erase함수만 사용해도 제거할 object를 vector에서 삭제할 수 있지 않을까 해서 질문드립니다
-
해결됨CUDA 프로그래밍 (2) - C/C++/GPU 병렬 컴퓨팅 - 벡터 vector 더하기
common.cpp의 procArg 함수에 대해 질문이 있습니다.
- 출장이 잦아서, 답변에 시간이 좀 걸릴 수도 있습니다. 양해 바랍니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요! C++과 CUDA 공부를 쉽고 재미있게 잘 하고 있습니다 ^^ 부족해서 하나부터 다 공부하고 있는데요.중요한 건 아닌 것 같습니다만 common.cpp의 procArg 함수의 이하 if문의 conditoin에 대한 질문이 생겨서 글을 남기게 되었습니다.if (typeid(TYPE) == typeid(float) && typeid(TYPE) == typeid(double)) 다름이 아니라 TYPE의 변수 타입을 알아내 strtof인지 strtol을 사용하는 결정의 if문의 조건에 걸린 연산자가 || (or) 연산자여야 할 것 같은데요..어차피 vecSize의 개수는 정수로 떨어지니 저렇게 만들어두셨나 싶다가도 정 궁금해서 여쭤봅니다! 그럼 답변 기다리겠습니다.감사합니다 😀