월 33,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8-B 문제 문의
안녕하세요 선생님,8-B 문제에 대해 문의드리고 싶습니다.저는 재귀를 들어갈 때 마다 (스텟이 바뀔 때 마다) 새로 해결한 퀘스트 수를 더하는 식으로 문제를 풀었는데 틀렸습니다. 저는 dp를 풀 때 현재값 + 재귀값으로 풀어왔는데 틀리니 이상합니다.48번 줄: ret = max(ret, nvisit + go(STR + i, INT + (PNT - i))); 선생님 풀이를 보고, 각 재귀 마다 현재 스텟에서 성공한 횟수를 반환하는 식으로 구현하니 맞게 나옵니다.47번 줄: ret = max(ret, go(STR + i, INT + (PNT - i))); 선생님 풀이와 로직은 동일한 것 같은데, 어떤 부분에서 틀렸는 지 모르겠습니다. 틀린 풀이https://www.acmicpc.net/source/share/9878747de0af458ca79dde4f3555903c맞는 풀이https://www.acmicpc.net/source/share/e7061d5e24564ad2a773395440381ecc 항상 강의 잘 듣고 있습니다.감사합니다.
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
교안 38p char 질문입니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 38페이지의 "char 을 초기화할 때 주의할 점"에 대해 궁금합니다. 코드에서 char a = '\0' 와 char b = 0 라고 선언한 부분이 if(a==b) cout << 1 ; 에서 1이 출력됩니다.위 설명에선 char 변수를 초기화할 때 특정값으로 하거나, 널 문자를 사용하는 방법 두가지가 있다고 했는데b는 숫자 0을 대입한 것인지 아니면 "0"을 대입한 건지 헷갈립니다. 당연히 전자라고 생각했는데 if 문에서 둘이 동일하다고 해서 제가 놓친 부분이 있는지 궁금합니다. 만약 후자라면 숫자 0을 대입하는 방법이 궁금합니다감사합니다
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
교안 36p void 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.좋은 강의 감사합니다.교안 36p :void:리턴하는 값이 없다" 코드를#include <bits/stdc++.h>using namespace std;int ret = 1;void a() { ret =2; cout<<ret<<"\n"; return;}int main(){ a(); cout<<ret<<"\n"; return 0;} 로 수정했습니다. 마지막에 cout만 추가한 것 입니다.그러면 제 생각에는 값이 2 1 이 나와야합니다.int ret =1 이 main 함수 밖에서 선언된 전역변수이고 a()함수에서 ret = 2라고 했지만 아무것도 반환하지 않았고, a 함수 내에서만 ret =2 라는 값을 가질거라고 생각했습니다.하지만 디버깅 결과 2 2 가 나왔는데 왜인지 모르겠습니다ㅜㅠ
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
온라인 코딩 테스트는 오픈북인가요?
안녕하세요 알고리즘 강의를 예전에 구매를 했었는데, 코딩테스트를 준비해야 할 시기가 되어 이제서야 공부하려고 합니다.궁금한 것이 아직 제가 온라인 코딩 테스트에 대한 경험이 없는데,온라인 코딩 테스트는 검색이나, 자신이 예전에 짜놨던 코드, 아니면 기타 서적 같은 것을 참고해서 보는 것이 가능한가요?어떤 방향으로 코딩테스트를 준비해야 할 지 방향을 조금 더 확실히 잡고 싶어 질문 드립니다!
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-B 보물섬 코드 질문입니다.
안녕하세요 큰돌님! 강의 잘보고 있습니다!보물섬 문제를 푸는데 궁금한 점이 있어서 질문드립니다.로직은 거의 동일하게 풀었습니다만, 문자가 다닥다닥붙어서 입력되는걸보고 scanf와 printf를 사용해보았는데 틀렸다고 나와서요.큰돌님이하신 방법대로 cin과 cout으로 교체해주었더니, 맞았다고 나왔지만 어느 부분이 다른 건지(혹은 틀린건지) 잘 모르겠습니다. ㅠㅠ아래 코드에서 주석 처리한 부분이 제가 처음에 작성했던 코드입니다.http://boj.kr/f3f04689b13c429d830e4dda8b3d9505답변 기다리겠습니다!
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-I 1620 맞왜틀입니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.선생님 안녕하시렵니까!프론트라 js로 코드를 짜고 있는데 맞왜틀에서 못 벗어 나고 있어유 ㅠ 도와주세용http://boj.kr/41950771eb5a4d74a0c20ff66a460e46
- 해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
While 문 질문입니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.ㅇ 안녕하세요. 강의 잘 듣고있습니다.while((pos = input.find(delimiter)) != string::npos)코드가 잘 이해가 안됩니다. input에서 delimiter를 찾는 부분이 input.find(delimiter)인데!= string::pos 부분이 이해가 안됩니다. npos는 무엇을 의미하는 건지 궁금합니다. 감사합니다!
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-B. 유기농 배추 질문있습니다.
안녕하세요 선생님. 해당 질문에 대해서 저는 for 반복문을 이용해서 풀었습니다.선생님께서는 while문을 이용해서 푸셨는데, 이러한 상황에서 시간복잡도 , 코드 효율성 등이 for문을 사용하는게 좋은지 while문이 좋은지 궁금합니다.또한, while문의 시간 복잡도를 구하는게 조금 헷갈리는데 간단하게라고 설명 해주시면 감사하겠습니다.#include <bits/stdc++.h> using namespace std; const int MAX_K = 2500; const int MAX_M = 50; const int MAX_N = 50; const int dy[4] = {-1, 0, 1, 0}; const int dx[4] = {0, 1, 0, -1}; int T, N, M, K; bool IsMovable(int dirY, int dirX, int visited[MAX_N][MAX_M], int Map[MAX_N][MAX_M]) { if (dirY >= N || dirX >= M || dirY < 0 || dirX < 0) return false; if (visited[dirY][dirX] != 0) // 방문한 적 있으면 return false; if (Map[dirY][dirX] != 1) // 갈 수 없는 곳이면 return false; return true; } void Go(int cy, int cx, int visited[MAX_N][MAX_M], int Map[MAX_N][MAX_M]) { visited[cy][cx] = 1; for (int i = 0; i < 4; i++) { int ny = cy + dy[i]; int nx = cx + dx[i]; if (IsMovable(ny, nx, visited, Map)) Go(ny, nx, visited, Map); } } int main() { cin >> T; for (int i = 0; i < T; i++) { int Map[MAX_N][MAX_M]{}; int visited[MAX_N][MAX_M]{}; int zoneCnt = 0; cin >> M >> N >> K; for (int j = 0; j < K; j++) { int diry = 0; int dirx = 0; cin >> diry >> dirx; Map[diry][dirx] = 1; } for (int currY = 0; currY < N; currY++) { for (int currX = 0; currX < M; currX++) { if (IsMovable(currY, currX, visited, Map)) { zoneCnt++; Go(currY, currX, visited, Map); } } } cout << zoneCnt<< endl; } }
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-L combi 방식으로 했을때 시간초과
http://boj.kr/71e5ee8f28ea4c35a38d8732c08dbca3안녕하세요.주몽 문제를 combi 방식으로 했을때 시간초과가 나는 이유는 무엇일까요?
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-H 질문
http://boj.kr/f20dcd82536849b794b2b9f0551683f9 안녕하세요 큰돌님이해가 안가는 부분이 있어서요1 2 3 1 2이렇게 있으면,마지막 부분 3 1 2은 등차수열의 합을 이용한(3) (1) (2) (3, 1) (1, 2) (3, 1, 2)이렇게 경우의 수를 모두 세는데,왜 1 2 3 같은 경우(1) (1, 2) (1, 2, 3) 이런 경우만 고려하는 걸까요?왜 (1) (2) (3) (1, 2) (2, 3) (1, 2, 3) 이렇게 세지 않는걸까요...
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 선생님 reverse 함수 사용하지 않고 문제풀이 해봤는데...
안녕하세요 선생님. reverse 함수 사용하지 않고 문제 풀이 해봤는데 dev c++에서는 예제 잘 돌아갔는데백준에서는 틀렸다고 나와서 질문 드립니다!왜 오류가 나오는지 , reverse 사용하지 않고 괜찮게 작성한 코드인지 궁금합니다! http://boj.kr/5ee18678eb5c4dd98d782a257769f061
- 해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-O 질문 있습니다
큰돌 선생님이 제 멘토라고 생각하고 열심히 배우는 중입니다 ㅎㅎ다음은 제 코드입니다.http://boj.kr/9f42d776453a4633b13e660610a7eb74cnt가 찾은 ret 이상이면 (제 코드에서는 mn) return하는 코를 안 적으면 왜 시간초과가 나는지 잘 모르겠습니다.문제를 풀 때 최악의 상황을 생각해서 그 최악의 상황을 돌렸을 때 제한 시간안에 돌아가야 한다고 생각합니다.만약 정답이 가로선 3개를 추가하는 것인 최악의 상황에서 이 코드가 유의미한 시간복잡도 차이를 만들어내지 못하는게 아닌가 하고 생각합니다. 이 문제 같은 경우 테스트케이스가 그러한 방식으로 짜여져있어서 통과와 시간초과라는 차이를 만드는 것인지 궁금합니다.전에 선생님께서 가르쳐주신 조합 코드를 생각해보면 한번 확인한 위치는 다시는 확인을 안 하도록 start+1을 해서 코드를 작성했던 기억이 납니다. 하지만 이 코드는 확인했던 행 - 1까지는 확인을 안하도록 here을 사용하지만 열, 즉 j는 1부터 확인함으로써 중복으로 검사하고 있습니다. 왜 무한루프가 안 생기는지 이해가 잘 되지 않습니다.
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
알고리즘 교안 62 페이지 관련 질문드립니다!
알고리즘 교안 에서 질문드립니다!혹시 62 페이지 타입변환시 주의할점에서 p가 어떤건지 궁금합니다!
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-O 질문있습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 큰돌님. 제 코드가 "틀렸습니다"로 뜨는 이유를 모르겠습니다..... http://boj.kr/d1dcc4d3cd2645619e493eab43591718 감사합니다:)
- 해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-E 기저조건 질문있습니다
안녕하세요 선생님 🙂함수에 있는 기저조건과 4가지 숫자가 같을 경우에 리턴 값으로 string(1, a[y][x])를 주셨는데요, 1 또는 0이라고 말씀해주셨지만 이해가 가지 않습니다. string 키워드로 교안과 구글을 찾아봤고, xstring으로 타고 들어가 분석해보려고도 했지만 마땅한 답을 찾지 못하였습니다.string함수 관한 설명이나 참고할 수 있는 교안의 목차를 알려주신다면 정말 감사하겠습니다 🙂 추가로, 함수 안에 있는 string ret = "";를 전역으로 빼면 값이 이상해지더라구요. 이유를 잘 모르겠어서 질문드립니다.
- 해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-P 연구소 solve()>fill() 함수에서 전역변수 vector<> v가 초기화 될 수 있나요?
제가 코드안되는 부분 찾다가 solve()>fill(visited) 함수에서 전역변수 vector<> v의 크기가 0으로 초기화 되는 문제를 겪었습니다https://www.acmicpc.net/source/78783272상세한 문제는 위 코드링크에 주석 달아놓았습니다무언가 잘못한 거같은데 모르겠네요// 개요 vector<pair<int, int>> v; int solve(){ // 여기서 visited 아니라 v가 초기화됨 fill(&visited,,) } int main(){ max(ret,solve()); }
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5 - B 질문입니다!
#include <bits/stdc++.h> using namespace std; string str, fire_str; string ret=""; int main() { cin >> str >> fire_str; for (char i:str){ ret+=i; if (i==fire_str[fire_str.size()-1]){ if (ret.size()-fire_str.size()<0) continue; else if (ret.substr(ret.size()-fire_str.size(),fire_str.size())==fire_str){ ret.erase(ret.size()-fire_str.size(),fire_str.size()); } } } if (ret=="") cout << "FRULA"; else cout << ret; }out of range 제출하게 되면 out of range 에러가 뜨는데 이유를 모르겠습니다. 어디서 나는 건가요??
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-J 주난의 난 이 코드는 어떤가요??
안녕하세요 ㅎㅎ 처음으로 3주차 문제를 혼자 힘으로 풀 수 있어서 너무 기뻤는데, 선생님과 다르게 풀어서 혹시 비효율적인 코드는 아닐까하고 여쭤보러 왔습니다! 얼마 전까지 실버도 못 풀던 제가 골드를 혼자 힘으로 맞출 수 있게 해주셔서 너무 감사합니다 ㅠㅠㅠ http://boj.kr/106cce4c523c4f4c8e18e73d413433e4
- 미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
플로이드 워셜 관련 질문
플로이드 문제에서 가령 입력값이 아래와 같다고 할 때, 541 3 103 2 11 5 15 3 1 d[1][2] 의 값은 K = 3 일 때 d[1][2] = d[1][3] + d[3][2] = 11 그런데 d[1][3]은 이후에 K가 5일 때 연산을 통해d[1][3] = d[1][5] + d[5][3] = 2 근데 작아진 d[1][3]의 값이 반영되려면 K가 5일 때, d[1][5] + d[5][3] 연산을 한 '이후에' K가 3일 때d[1][2] =d[1][3] + d[3][2] 연산을 통해 d[1][2] 의 값이 바뀌어야 한다고 생각이 드는데 점점 증가해야 하는 K값이 값자기 작아질수는 없으니 그건 불가능합니다. d[1][2]의 값이 3이 되는데 필요한 어떤 연산을 제가 놓친건지 모르겠습니다...
- 해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
dp를 이차원 배열로 만들어서 풀어봤는데, 틀립니다.
http://boj.kr/7c9fc1fdb4894c518c897537de03f02b선생님, 안녕하세요~dp를 이차원 배열로 만들어서 n번째 인덱스까지 돈m을 썼을때의 최대 칼로리 양을 저장하게 했습니다. int dp[5004][10004]; // n번째 인덱스까지 돈m을 썼을때 최대 칼로리양그 후 나머지 부분은, 동전문제에서 했던 것과 비슷하게, 단지 이차원 배열이니깐 dp[i][j]를 비교할 때, 가격이 이전 인덱스가 더 큰지, 아니면 이번 인덱스에서 가격만큼을 빼고 칼로리만큼을 더한게 더 큰지 비교해주도록 했는데요.for (int i = 1; i <= n; i++) { for (int j = 1 * 100; j <= m * 100; j++) { if (price[i] > j) { dp[i][j] = dp[i - 1][j]; } else { dp[i][j] = max(dp[i - 1][j], dp[i][j - price[i]] + cal[i]); } mx = max(mx, dp[i][j]); } }지금 제가 생각하기에, 코드를 이렇게 짰을때, 일차원배열과 이차원배열이 큰 차이가 있나 싶기도하고, 다른 냅색문제에서 이렇게해서 통과하는 경우가 있었기에, 어떤 차이가 있을까, 반례가 뭐가있을까 질문드리고 싶습니다.