월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
55번 문제의 코드 리뷰를 부탁드려도 될까요?ㅠㅠ
안녕하세요 선생님 다음 코드가 예제 코드도 정답이 나오고 채점파일을 돌렸을때 80점이 나왔는데, 왜 깎인건지 모르겠습니다ㅠㅠ 왜 틀린건지 알 수 있을까요? #include<stdio.h> #include<vector> #include<stack> #include<algorithm> using namespace std; int main() { // freopen("input.txt", "rt", stdin); int n, i, next=1, flag=1; int a[40]; stack<int> s; vector<char> out; scanf("%d", &n); for(i=0; i<n; i++) { scanf("%d", &a[i]); } for(i=0; i<n; i++) { if(!s.empty() && s.top() < a[i]) { flag=0; printf("%d\n", i); break; } else { s.push(a[i]); out.push_back('P'); } while(true) { if(s.empty() || s.top() != next) break; else { s.pop(); out.push_back('O'); next++; } } } if(flag == 0) printf("impossible\n"); else { for(i=0; i<2*n; i++) { printf("%c", out[i]); } } return 0; }
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
43번)뮤직비디오(이분검색 응용) 관련 질문있습니다!
강사님께서 보여주신 코드를 보면, main함수속의 while문에서, if(Count(mid)<=m) { res = mid; rt = mid - 1; } else lt = mid + 1; 이렇게 코드를 구현하셨는데요, 제가 여기서 궁금한 점은, Count(mid)<=m 조건을 만족할때마다, res = mid; 이렇게 DVD의 용량 값을 업데이트를 해주고 있는데요, 저는 Count(mid)==m 이렇게 작을경우는 말고, 오직 같을때만 업데이트를 해줘야한다고 생각하는데, 왜 강사님께서는 사용자가 m개의 DVD를 사용하고 싶다고 했으면, 딱 m개일때만 DVD의 용량을 업데이트를 하지 않고, m보다 더 작은 개수가 나왔을때도, res = mid; 이렇게 DVD의 크기를 업데이트 해주는지 궁금합니다! 답변해주시면 감사하겠습니다!
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
강의 자료 관련
선생님 안녕하세요 공부한것을 블로그에 정리하려고 하는데 강의자료를 써도 괜찮을까요? 문제 푼것을 올릴때 문제를 같이 올려서 정리하고싶어서요 답변해주시면 감사하겠습니다
- 해결됨it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
이 오류는 왜 뜨는 걸까요?
문제를 풀다가 궁금한게 생겨서 질문을 올립니다. 제가 구현하고 싶은 부분은, 사용자로부터 문자열을 입력받아서 char형 배열에 저장하고, for문을 돌려가며, 입력받은 문자열 중, 문자 'H'가 있는 인덱스값을 반환하기를 원합니다! --------------------------------------------------------------------------------------- int main(int argc, char* argv[]) { char data[10]; int indexOfH; // H가 위치한 인덱스를 알고자 함 scanf("%s", data); for (int i = 0; i < strlen(data); i++) { if (data[i] == 'H') indexOfH = i; } printf("%d\n", indexOfH); return 0; } -------------------------------------------------------------------------------------- 간단하게 제 코드는 이렇습니다! 보통 문자열을 처음부터 끝까지 순회할 때, "문자열이 널문자를 만나기 전까지 순회한다"라고 강사님께서는 코드를 구현하시더라고요.. 저는 처음에는 그 생각을 미쳐하지 못하고, 문자열의 길이를strlen함수를 통해서 얻어내서, 문자열의 길이보다 작을때까지, for문을 돌리는 방법으로 구현하였습니다. 제 생각에는 제 방법이 틀리지 않다고 생각을 했는데, 제가 짠 코드대로 컴파일을 하면, C6054: 문자열이 0으로 종료되지 않을수도 있습니다 라는 오류문구가 뜹니다. 왜 이런 오류문구가 뜨고, 어떻게 하면 해결할 수 있는지 정말 궁금합니다! 답변해주시면 정말 감사하겠습니다!
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
c++
선생님 저는 C++로 준비하고 싶은데 거의다 C언어로 설명을 하시는데 어떻게 해야될까요?
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
상태 트리 사용 질문 있습니다
안녕하세요 선생님 문제를 읽고 해결하기 위해 처음엔 이전 문제들과 마찬가지로 이동할 수 있는 경우의 수를 인접리스트로 표현하려고 시도하였습니다. 그런데 너무 복잡한 것 같아, 강의를 일부분 듣고 선생님께서 설명 해 주신 상태 트리에 대한 힌트를 얻어 해결하였는데요, 그래프 탐색 문제에서 어떤 문제는 그래프를 직접 표현해서 풀고, 어떤 문제는 상태트리로 해결해야 겠다 라는 판단은, 문제를 많이 풀다 보면 자연 스러워지는 걸까요? 그리고 가능하면 선생님 풀이를 안보고 혼자 힘으로 해결하려고 노력하지만, 요즘들어 시간이 너무 오래 걸리는 것 같아서 영상을 일부를 보고 힌트를 얻거나, 아니면 선생님의 풀이에 익숙해 지는 방식으로 공부하고 있는데요, 이렇게 해도 될지 여쭙고 싶습니다.
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
char 배열의 null 문자에 대해 질문드립니다.
scanf함수를 이용해서 char 배열에 문자를 받아오게 되는데 선생님 강의에서 보통 char 배열을 for문으로 돌 때 '\0' null 문자를 이용하는 걸 배웠습니다. 근데 만약에 char arr[5]인 배열에 'abcde'를 scanf로 입력받는다면 어떻게 될지 궁금해서 프로그래밍을 해보니까 정상적으로 for문을 수행했습니다. 이런 경우엔 배열의 크기가 5인데 null 문자는 어디에 저장된 것일지, 어떻게 for문을 인식하고 수행한 것인지 궁금합니다.
- 해결됨it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
c언어? c++?
안녕하세요! 강사님! 우선... 좋은 강의 열심히 듣고 있습니다! 저는 지금은 c언어 밖에 제대로 모르는 상태고 c++은 얕게 아는 상태인데, 그래서 이 강좌를 시작할 때, 이 강좌이름이 c/c++ 이라고 되어 있어서, c++을 잘 모르는데 들어도 되나 되게 걱정했었거든요 근데 막상 들어보니까 그냥 c언어만 알아도 아무 문제가 없더라고요 그래서 그런데, 미래에 코딩테스트를 응시할 때, 언어를 하나 선택하게 된다면, c언어를 선택하나 c++을 선택하나 큰 차이가 없는건가요??
- 해결됨it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
for문 조건식
9부터 0까지 쭉 내림으로 순회하고 싶은데요, for(int i=9; i==0; i--) { .... } 이렇게 for문을 작성하였더니, 오류가 났습니다..ㅠㅠ 알아보니 가운데에 조건식에 i==0라고 쓴게 문제가 난 것 같더라구요... 혹시 왜 i==0이 들어가면 오류가 나는지 아시는분 있나요?? ㅠㅠㅠㅠㅠ 답변해주시면 감사하겠습니다..
- 해결됨it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
"11번) 숫자의 총 개수(small)" 에 관해 질문있습니다! (실행시간측정관련)
문제11번) 숫자의 총 개수(small) 의 강좌속에서, 김태원선생님께서 문제11번 처럼 코드를 작성하게 된다면, 자연수N의 크기가 너무 커졌을때, time limit가 발생한다고 하셨습니다. 그리고 " 제 컴퓨터로 만약 10억까지 숫자를 키워서 실행시킬경우, 25초, 26초 정도 걸리더라고요" 라고 수업시간에 말씀하셨습니다. 그래서 저는 직접! 제가 코드에서 시간을 측정하고 싶어서, 구글 검색을 해봤더니, time.h 헤더파일을 이용하면, 실행시간을 측정할 수 있다는 글을 보고, 제가 코드에 적용해보았습니다. 다음은 제가 작성한 코드를 붙여놓기 해놨습니다! --------------------------------------------------------------------------------------------------------------------- #include <stdio.h> #include <time.h> // 실행시간을 측정하기 위한 헤더파일 int main(int argc, char* argv[]) { clock_t start, finish; int N; int cnt = 0; // 숫자의 총 개수세는용 float time; start = clock(); // 시간 측정 시작 scanf("%d", &N); // 자연수N 입력 for (int i = 1; i <= N; i++) { int save = i; // 원본i의 값이 바뀌면 안되서, 일단 숫자 복사해놓기 while (save > 0) { cnt++; save = save / 10; } } printf("%d\n", cnt); finish = clock(); // 시간 측정 종료 time = (float)(finish - start) / CLOCKS_PER_SEC; printf("시간측정: %f\n", time); return 0; } ------------------------------------------------------------------------------------------------------------------- 돌려보았더니, 시간이 8초정도 나왔습니다. 저는 scanf로 사용자로부터 입력받기 전부터 시간측정을 시작하는걸로 코드를 작성하였는데, 하다보니 궁금증이 생겼습니다. 시간측정을 어느순간부터 시작해서 언제 시간측정을 끝내야 되는건가요? 강사님께서는 25초 정도 나왔다는데, 왜 저는 8초정도 나왔을까요?? 정말정말 너무 궁금합니다 ㅠㅠㅠㅠㅠㅠ 답변해주시면 감사하겠습니다!
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
파이썬 강좌 관련해서 문의드립니다.
안녕하세요 선생님 c++로 코테를 준비하기 위해 이 강의를 구매했었는데 파이썬으로 언어를 변경하게 되어 혹시 파이썬 강좌로 구매이력을 변경시켜주실수있으신지 문의드립니다! 변경해주신다면 정말 열심히 수강하고 익히겠습니다 감사합니다
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
이렇게 해도 되나요?
간단하게 보여드리기 위해 변수랑 숫자는 문제 그대로를 사용했습니다 arr배열에 1~9까지를 누적 합계를 사용하여 total/m 과 가장 차이가 나지 않는 부분에 도달하면 분리시킬 수 있도록 만들어봤는데 이렇게 해도 되나요? #include <iostream> #include <math.h> using namespace std; int arr[9]={1,3,6,10,15,21,28,36,45}; int main(){ int m=3; int totalmax=0; int total=45; int lt=0,rt=8; int d=0; int min=0; while(lt<=rt){ int idx=0; min=21000000; for(int i=lt;i<=rt;i++){ arr[i]=arr[i]-d; cout<<i<<"arr:" << arr[i]<<endl; if(min > abs((total/m) - arr[i])){ min=abs((total/m) - arr[i]); idx=i; } } d=arr[idx]; cout << "d:"<<d<<endl; if(totalmax < arr[idx]){ totalmax=arr[idx]; } lt=idx+1; } cout << totalmax; }
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
간단한 질문드립니다 !
안녕하세요 강사님, 유익한 강의 즐겨보고 있습니다! 이번 강의 관련해서 간단한 질문이 하나 있는데요, 제 아래 코드와 같이 정렬 for문안에서 3등 점수를 찾는순간 출력하고 프로그램을 종료하도록 짜면은 3등 이외에 등수들을 정렬하는 시간을 아낄 수 있지 않을까요 ? #include <iostream> using namespace std; #include <vector> int main () { freopen("input.txt", "r", stdin); int n = 0; int temp = 0; int indx = 0; int order = 1; cin >> n; vector <int> a (n); for (int i = 0; i < n; i++) { cin >> a [i]; } for (int i = 0; i< n-1; i++) { temp = a[i]; indx = i; for (int j = i+1; j < n; j++) { if (a[j] > a [indx]) { indx = j; } } a[i] = a[indx]; a[indx] = temp; if (i!=0 && (a[i] != a[i-1])) { order ++; if (order == 3) { cout << "third place is " << a[i] << endl; return 0; } } } return 0; }
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
질문있습니다!
#include<stdio.h> #include<queue> using namespace std; int main(){ priority_queue<int> q; int x; while(true){ scanf("%d",&x); if(x==-1) break; if(x==0&&!q.empty()){ printf("this==%d\n",-q.top()); q.pop(); } if(x==0&&q.empty()) printf("-1\n"); else q.push(-x); } return 0; 저가 작성한 코드를 실행시키면 3 5 2이 아닌 3 0 0이 나옵니다. * input(5 3 6 0 5 0 2 4 0 -1) 하지만 if(x==0&&q.empty()) printf("-1\n"); -> else if(x==0&&q.empty()) printf("-1\n"); 로 수정하면 답이 정상적으로 나옵니다. 계속 고민해도 원인을 아직까지 찾지 못해서 도움을 청합니다. }
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
선생님 궁금한게 있습니다.
int main(){ int n; int num; int num2; scanf("%d", &n); for(int i=1; i<=n; i++){ scanf("%d", &num); } for(int j=1; j<=n; j++){ scanf("%d", &num2); } for(int k=1; k<=n; k++){ if(num==num2) printf("D\n"); else if(num==1 && num2==3) printf("A\n"); else if(num==2 && num2==1) printf("A\n"); else if(num==3 && num2==2) printf("A\n"); else printf("B\n"); } } 선생님 여기서 a가 내는것과 b가 내는 것을 배열로 입력을 받아서 설정해주는 것은 이해가 가지만 왜 배열로 받지 않고 num, num2로 설정할때는 값이 안나오는지 배열로 입력 설정할때와 단순히 변수로 입력 설정할떄 다른 점이 무엇이 있는건지 궁금합니다
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
올바른 괄호 채점질문
안녕하세요. visual studio 2015를 사용중인 수강생입니다. 올바른 괄호 문제에서 코드를 강사님과 똑같이 이렇게 작성했으나 , 프로젝트 디렉토리 내에서 Debug폴더에 AA.exe파일을 제출해서 실행해보니 계속 이러한 결과만 나타납니다. 컴파일러를 Dev C++을 사용해야 할까요..? 감사합니다.
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
재귀함수에서 지역변수와 전역변수에 대한질문입니다!
안녕하세요! 좋은강의 너무잘보고있습니다! 다름이아니라 i를 전역변수로 선언했을때 값이 계속 1로나와서 질문드립니다. 브레이크포인트걸어서 원인을 파악하려고해도 모르겠어서 질문드립니다.. 이하코드는 i가 전역인것제외 강사님의 코드와 일치합니다 int map[21][21], n, cnt = 0, ch[21], i; void DFS(int x) { if (x == n) { cnt++; } else { for (i = 1; i <= n; i++) { if (map[x][i] == 1 && ch[i] == 0) { ch[i] = 1; DFS(i); ch[i] = 0; } } } } int main() { // #64 경로탐색(DFS) int m, a, b; cin >> n >> m; for (i = 1; i <= m; i++) { cin >> a >> b; map[a][b] = 1; } ch[1] = 1; DFS(1); cout << cnt; }
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
74.최소힙(우선순위 큐)
#include<stdio.h> #include<queue> using namespace std; int main(){ priority_queue<int> q; int x; while(true){ scanf("%d",&x); if(x==-1) break; if(x==0&&!q.empty()){ printf("this==%d\n",-q.top()); q.pop(); } if(x==0&&q.empty()) printf("-1\n"); else q.push(-x); } return 0; 저가 작성한 코드를 실행시키면 3 5 2이 아닌 3 0 0이 나옵니다. * input(5 3 6 0 5 0 2 4 0 -1) 하지만 if(x==0&&q.empty()) printf("-1\n"); -> else if(x==0&&q.empty()) printf("-1\n"); 로 수정하면 답이 정상적으로 나옵니다. 계속 고민해도 원인을 아직까지 찾지 못해서 도움을 청합니다. }
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
for(:) 문, 사용 안되나요?
- 혹시 dev c++ 위 프로그램을 사용해서 하라고 하셨는데 혹시 for(:) 이 형식은 사용이 안되나요?? for (int iter : iters) 비쥬얼에서는 되는데... 여기서는 에러라고 뜨네요... 4번째 문제인데 ;; #include <iostream> #include <vector> using namespace std; int main() { int N,M; int min=100, max=0, sum=0; vector<int> iters; do { cout << "2~100까지 입력한다." << endl; cin >> N; } while (N < 2 && N > 100); for (int a = 0; a < N; a++) { cin >> M; iters.push_back(M); } for (int iter : iters) { max = max > iter ? max : iter; min = min < iter ? min : iter; } cout << "max = " << max << endl; cout << "min = " << min << endl; cout << "max-min = " << max - min << endl; } 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
15라인 for문에서
for(j=1;j<=is[i];j++){ } 이 부분에서요 처음에 i = 8 이라서 is[i]= 0 이 잖아요 근데 for(j=1; j<=0; j++) { } 이부분이 될수있나요?? 선생님꼐서는 예시를 5로 설명해주셨는데 5는 이해가되는데 i가 8일때 is[8] 이떄는 is[8]는 0이죠 이해가 가질않습니다..