월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
4월 4일까지 수강 진도 10% 이상 달성하면 준다는 모의고사 파일을 못받았습니다
4월 4일 전까지 수강 11% 달성을 했는데 코테 응원 이벤트로 모의고사를 준다고 하셨는데 메일함에 없습니다 어떻게 받을 수 있나요
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
exit_code3
안녕하십니까. 선생님 문제를 풀이하고 계속 채점프로그램을 돌리는데, 다음과 같은 에러가 발생합니다. 혹시 관련 에러에 대한 원인을 알 수 있을까요.. 계속 에러나서 코드도 선생님의 코드를 적용했는데도 동일 에러가 발생합니다..
- 해결됨it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
퀵 정렬 함수를 모르면 애초에 스스로 푸는 게 불가능한 문제였나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 문제를 읽고 스스로 푸는 과정에서 정렬을 사용하면 좋겠다싶어서 여태껏 배운 삽입정렬, 버블정렬, 선택정렬을 사용해서 a, b배열을 정렬을 해봤는데 5번째에서 c배열을 진입하기도 전에 Time_Limit이 떠버렸습니다. 그런데 본 강의에서는 처음보는 퀵 정렬 함수를 이용하시더라구요ㅠ 애초에 이제껏 배웠던 정렬을 이용해서 푸는게 불가능 한 문제였더라면 코드를 작성하기 전 단계에서 퀵 정렬 함수를 미리 알려주셨으면 더 좋았을듯 합니다.
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
시간 복잡도 관련으로 질문 드립니다
안녕하세요 강사님, 강의 잘 듣고 있습니다! 다름이 아니라 제가 짠 코드로도 100점이 나오긴 하는데, 강사님이 설명해주신 코드와는 방식이 조금 달라 해당 코드의 시간 복잡도에 대해 여쭤보고자 질문 드립니다. #include <iostream> using namespace std; int main() { int count = 0; int max = 0; int input; cin >> input; for (int i = 1; i <= input; i++) { count = 0; max = i; for (int j = 1; j <= max; j++) { if (i % j == 0) { if ((i / j) != j) count++; max = (i / j) - 1; count++; } } cout << count << ' '; } cout << endl; } 시간 복잡도 O(n^2)의 코드와 유사한데, for문을 한 번 계산할 때마다 max 값을 줄여 약수의 절반을 찾아내면 다음 for문으로 넘어가는 방식의 코드예요. 실제로 for문이 도는 건 원래의 값보다 훨씬 적긴 한데 O(logn * n)보다는 오래 걸리는 것처럼 보여서... 이 코드의 시간 복잡도도 O(n^2)이 맞나요?
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
플로이드 워셜 알고리즘(1->5) 경우
i가 1, j가 5, k가 2인경우에 (1,5) 와 (1,2)+(2,5) 가 비교되는 경우가 생기는데 (2,5)의 값 같은경우 이전에 k=1일때 (2->1->5)의 값과는 계산해서 비교해 보았지만 반복문의 순서에 따라 k가 2,3,4,5 인 경우 즉 (2->3->5), (2->4->5) 이런경우들과 값을 비교해 보지 못하였다고 생각되는데 최솟값이라고 할 수 있는건가요?
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
제 방식대로 풀어봤습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 맥북 Xcode를 쓰고 있어서 채점 프로그램을 못쓰는데, 구조체랑 함수를 따로 만들어서 문제를 풀어도 되는지 궁금합니다. #include <stdio.h> struct Question { int number; int answer; }; int sum(int n) { int i, sum = 0; for (i = 1; i <= n; i++) { sum += i; } return sum; } int main() { int n, i; scanf("%d", &n); Question arr[n]; for (i = 0; i < n; i++) { scanf("%d %d", &arr[i].number, &arr[i].answer); } for (i = 0; i < n; i++) { if (arr[i].answer == sum(arr[i].number)) printf("YES\n"); else printf("NO\n"); } return 0; }
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
아나그램 문제 풀이 방법!
안녕하세요! 16번 아나그램을 풀다가 이렇게 한번 풀어봤는데요, 16번까지 오면서 처음으로 모범 답안보다 조금 더 효율적인 방법이 아닐까 싶어서 제안겸 자랑(?)을 하기 위해 소스를 공유합니다 :D #include <iostream> using namespace std; int main() { //FILE* fp = nullptr; //freopen_s(&fp, "input.txt", "rt", stdin); char a[150]; char b[150]; char temp[100] = { 0 }; cin >> a >> b; for (int i = 0; a[i] != '\0'; i++) { temp[a[i] - 65]++; temp[b[i] - 65]++; } for (int i = 0; i < 51; i++) { if (temp[i] == 0) continue; if (temp[i] % 2 == 1) { cout << "NO"; return 0; } } cout << "YES"; return 0; } a와 b의 크기를 100으로 했을 경우 "- Stack around the variable 'a' was corrupted." 에러가 발생을 해서 어떻게 해야할지 몰라 일단 메모리 크기를 넉넉하게 잡고 풀었습니다. 좋은 강의 감사드리고 앞으로도 열심히 들을게요!
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
10 자릿수의 합
#include <iostream> #include <vector> #include <algorithm> using namespace std; int digit_sum(int x){ int temp; int sum = 0; while(x==0){ temp = x%10; sum = sum + temp; x = x/10; } return sum; } int main() { int N; vector<int> v; vector<int> v2; cin >> N; int number; for(int i=0; i<N; i++){ cin >> number; v.push_back(number); } for(int i=0; i<N; i++){ v2[i] = digit_sum(v[i]); cout << v2[i] <<endl; } return 0; } 안녕하세요 강사님. 저는 10번 문제 같은 경우 두개의 벡터를 이용해서 문제를 해결하려고 해봤는데요. 위의 코드를 실행하면 vector subscript out of range 라는 에러 메세지가 떠서요... 혹시 어떤 점이 문제인지 알려 주실 수 있을까요?또, 저는 주로 vector를 이용해서 문제의 해결법을 많이 생각하는 편인데요. 이렇게 vector를 사용해서 문제를 풀면 안 좋은 점이 있을까요??
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
질문있습니다 선생님.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 예를들어 5,6 2,3,4,5,8 이렇게 케이스가 들어왔다고 가정했을때 ex)2+4 같은 경우 조건에 충족되지만 ex)2+4-3-5+8인 경우도 문제에 충족됩니다. 그리고 저 두가지는 다른 dfs()함수로 리턴되니 개수를 셀때 저 두가지 경우를 다 세서 +2가 들어갈것입니다. 채점 실행파일에 들어간 5개의 테스트케이스에 답이 이러한 예시가 들어간 답인가요? 아니면 저가 놓친부분이 있나요?
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
수학적 능력이 부족한경우
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> using namespace std; int main(int argc, char** argv) { //freopen("input.txt", "rt", stdin); int cnt = 0; int n; int prime[100000]; bool skip; scanf("%d", &n); for(int i = 2; i < n; i++){ skip = false; for(int j = 0 ; j < cnt ; j++){ if(i % prime[j] == 0){ skip = true; break; } } if(skip) continue; prime[cnt] = i; cnt++; } if(n == 2) cnt = 1; printf("%d", cnt); } 스스로 문제를 풀어보고 강의정답과 비교해보면 제 수학적인 지식이 부족해서 코드를 다르게 짠 경우가 많은 것 같습니다. 이 문제의 코드도 제 나름대로 생각해봐서 0.6~0.7초 정도가 나와서 정답처리가 나오긴 했는데요, 막상 강사님의 코드와 비교를 해보고 느낀점은 수학적인 지식과 그 지식으로부터 규칙을 뽑아내는 능력이 필요해보입니다 ㅠ 하지만 저한테는 그러한 능력이 부족해서 강사님의 코드에 비해 제 코드는 비효율적으로 보입니다. 앞으로도 이런 문제들이 계속 나타날 것 같은데 애초에 이런 능력이 결여되어있으면 알고리즘을 푼다는건 힘든일일까요?
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
85번 수식 만들기 코드가 time limit이 발생합니다.
85번을 풀면서 채점프로그램에서 1번은 success, 나머지 4개는 time_limit이 발생했고, 입출력 결과는 수동으로 해봤을때 잘 나왔습니다. 다음 코드에서 왜 time_limit이 발생한 건가요? 추가로, time_limit이 발생할지 여부를 판단하는 방법이 있을까요? #include<bits/stdc++.h> using namespace std; int n, op[5], res_max=-2147000000, res_min=2147000000; vector<int> numbers(11); void DFS(int L, int sum) { int i, j; if(L > n-1) { if(res_max < sum) res_max = sum; if(res_min > sum) res_min = sum; } else { for(i=0; i<n-1; i++) { //연산자 개수 for(j=1; j<=4; j++) { if(op[j] > 0) { op[j]--; if(j==1) DFS(L+1, sum+numbers[L+1]); else if(j==2) DFS(L+1, sum-numbers[L+1]); else if(j==3) DFS(L+1, sum*numbers[L+1]); else if(j==4) DFS(L+1, sum/numbers[L+1]); op[j]++; } } } } } int main() { ios_base::sync_with_stdio(false); freopen("input.txt", "rt", stdin); int i; cin>>n; for(i=1; i<=n; i++) { cin>>numbers[i]; } for(i=1; i<=4; i++) { cin>>op[i]; } DFS(1, numbers[1]); cout<<res_max<<"\n"<<res_min; return 0; }
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
강의를 거의 다 듣고 처음으로 백준 문제를 풀어봤는데 메모리 초과 문제가 발생했습니다
강의를 거의 다 듣고 처음으로 백준 문제를 풀어봤는데 dev c++에서는 잘 돌아가는데 왜 백준에서는 메모리초과가 뜨는지 모르겠습니다 ㅠㅠㅠ (모든 예제 입력에 맞는 출력이 나왔습니다) 1043 거짓말 문제이고(https://www.acmicpc.net/problem/1043), 강의에서 알려주신 인접리스트를 사용해서 문제를 풀어봤는데 왜 메모리 초과가 뜬걸까요?ㅠㅠㅠ 메모리 제한이 128MB인데, 혹시 dev c++에서 메모리 사용량을 확인할 수 있는 방법이 있나요? #include<bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(false); freopen("input.txt", "rt", stdin); int n, m, warning, party, i, j, a, b, flag, cnt=0; cin>>n>>m; vector<int> warnings(n+1, 0), tmp[n+1]; cin>>a; if(a==0) { cout<<m; return 0; } for(i=0; i<a; i++) { cin>>b; warnings[b] = 1; } for(i=0; i<m; i++) { cin>>a; flag = 1; for(j=0; j<a; j++) { cin>>b; tmp[i].push_back(b); if(warnings[b] == 1) flag = 0; } if(flag == 0) { for(j=0; j<tmp[i].size(); j++) { warnings[tmp[i][j]] = 1; } } } for(i=0; i<m; i++) { flag = 1; for(j=0; j<a; j++) { if(warnings[tmp[i][j]] == 1) { flag = 0; break; } } if(flag == 1) cnt++; } cout<<cnt; return 0; }
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
플로이드워샬
안녕하세요! 강의 넘 잘 듣고 있습니다. 플로이드워샬이 모든 정점에서 모든 정점으로 가는 최소비용이라고 하셨는데, 그럼 다익스트라를 정점 수 만큼 반복해서 하는 것과 다른점이 있을까요? 감사합니다.
- 해결됨it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
c++ [4.나이차이] 질문드립니다.
안녕하세요. c++ 로 코딩 테스트를 준비하려고 강의를 듣는 문성현이라고 합니다. 다름이 아니라 4. 나이차이 문제를 풀 때 저는 std::vector를 이용해서 풀어보려고 했는데요. int main(){ using namespace std; vector<int> v; int sum = 0; int i,N; cin >> N; for(i=0; i<N; i++){ cin >> i; v.push_back(i); } sort(v.begin(),v.end()); sum = v[N-1] - v[0]; cout << sum << endl; } 위와 같이 코드를 작성했을 때 마지막 v[N-1] - v[0]에서 v[N-1]의 값이 읽히지 않고 결과값이 그냥 -v[0]로 나오더라구요. 물론 강사님이 푸신 코드가 훨씬 간결하고 좋지만 제 코드에서 저 부분이 왜 작동하지 않는지 궁금해서요!
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
질문 있습니다!!
ㄹ #include <iostream> #include<string> #include<vector> #include<deque> #include<algorithm> #include<stack> //스택 구조 사용하기 using namespace std; /////////////////////////////////////////////////////////////// //변수 정의(전역변수) int N; int sum = 0; bool arr[11]; int vec[11]; //vector<int>vec; /////////////////////////////////////////////////////////////// //내가 짠 함수(시간 오래 걸림) //void func(int k) //{ // int S = 0; // for (int i = 1; i <= N; i++) // { // if (arr[i] == true) // { // S += vec[i]; // } // } // // if (sum - S == S) // { // cout << "YES" << '\n'; // exit(0); // } // // if (k > N) // { // //cout << "NO" << endl; // return ; // } // // else // { // arr[k] = 1; // func(k + 1); // arr[k] = 0; // func(k + 1); // } //} //////////////////////////////////////////////////////////// //강의 듣고 다시 짠 함수 void func(int k, int S) { if (sum - S == S) { cout << "YES" << '\n'; exit(0); } if (k > N) return; else { func(k + 1, sum + vec[k]); func(k + 1, sum); } } ///////////////////////////////////////////////////////////// //main 함수 int main() { ios::sync_with_stdio(0); cin >> N; for (int i = 1; i <= N; i++) { cin >> vec[i]; sum += vec[i]; } func(1, 0); cout << "NO" << endl; return 0; } //
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
c언어로 질문드립니다!
질문1 c언어도 적혀있어서 c언어관련 강의인줄 알고 들었는데 c++수업이라 c로 바꿔서 코드 공부중인데요 c로된 코드자료는 없을까요? 질문2 "4.나이차이 강의"에서 파일을 이용한 c코드를 모르겠습니다 파일 읽어와서 작성하는 c코드부탁드립니다
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
포문 시작점
선생님 42번문제에서는 입력받을때 i=0부터 받으셨는데 43번 이 문제에서는 왜 i=1부터 받으시나요 이런것들 명확하게 알려주시면 감사하겠습니다 너무 헷갈려서요,, 문제에서 확인해봤는데 0이나 1이나 차이가 없는데 어떤문제에서는 인덱스를 0부터 돌리시고 어떤문제에서는 1부터 돌리시는데 답변좀 해주세요 ㅠㅠ
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
배열 선언
선생님 너무 헷갈리는게 문제를 푸실때 어떨땐 벡터를 쓰시고 어떨땐 전역변수로 배열을 선언하시는데 차이점좀 명확하게 알려주시면 감사할게요 . 이문제만 해도 42번문제에서는 이분탐색을 백터로 하셨는데 43번에서는 배열로 푸셔서요 답변좀 부탁드립니다 ㅠㅠ
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
vector와 배열 질문
선생님 Vector랑 배열을 왔다갔다 쓰시는데 혹시 어떨때 vector를 쓰고 어떨때 배열을 쓰면 되나요? vector는 동적이고 배열은 정적인건 아는데 선생님은 어떤 기준에서 vector를 쓰시고 어떤기준에서 배열을 쓰시는지 조금 헷갈립니다 ㅠㅠ
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
질문있습니다.
질문이 있습니다. 이거 강사님 코드에서 max값=초기화 하는 부분을 변수선언할떄 한번에 초기화 할떄랑, ave값 밑에서 초기화 해줄때 결과값이 다르게 나오는지 궁금합니다.