월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
76번 이후는 채점폴더가 없나요?
75번까지만 있네요
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
return 0;
return 0;을 없애도 코드가 돌아가는데 꼭 있어야 하는 건가요???
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
75번문제 오류에 대해서..
안녕하세요선생님 강의 잘듣고있습니다. 해당문제에서 구조체를 정렬하기위해 연산자 오버로딩하는 부분인 코드가 bool operator<(Data &d) { return when>d.when; } 라고 되어있었는데 컴파일러 오류가 나서 살펴보았더니 error: invalid operands to binary expression ('const Data' and 'const Data') bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;} 이러한 문제가 있다고 나왔습니다. 그래서 제가 bool operator<(const Data &d) const{ return when>d.when; } 로 수정하였는데 어떻게 다른지 알려주실수 있을까요? 아! 그리고 생성자에 b(int b)가 쓰여져있었는데 위의 코드에서도 b(Data &b)가 써져있어 수정해야할 것 같습니다. 감사합니다
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
13번 전역변수 질문이요
ch[]를 main 안에 넣고 컴파일 하면 res에서 런타임에러3가 나더라고요.. 값을 받는 변수res가 초기화 되지 않았다는 말인데, ch를 전역/지역 변수로 쓰일 때 차이점을 잘 모르겠어요
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
str 초기화
두번째 문자열을 받기위해서 str을 다시 scanf 하였는데, 혹시 두 문자열의 길이가 다르게 입력된다면, 두번째 문자열에는 이상한 값이 들어갈 수 있다고 생각합니다. 그러면 어떻게 초기화하나요? 그냥 단순하게 str = NULL; 해도 되는건가요? 아니면 scanf를 받으면서 기존에 있던 문자열은 자동으로 리셋되는 건가요?
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
23번 문제를 벡터로 풀다가 질문이 있습니다.
아무리봐도 잘못된 부분이 보이지 않는데 count를 print해보았을 때, 왜 count가 7로 나오는지 모르겠습니다.. 혹시 잘못된 부분이 있다면 지적해주시면 감사하겠습니다. #include<iostream> #include<stdio.h> #include<vector> using namespace std; int main() { freopen("input.txt", "r", stdin); int n, count = 1, max = -1; scanf("%d", &n); vector<int> a(n); for (int i = 0; i < n; i++) { scanf("%d", &a[i]); } for (int i = 0; i < n; i++) { count = 1; for (int j = i + 1; j < n; j++) { if (a[i] < a[j] || a[i] == a[j]) count++; //5 7 3 3 12 12 13 10 11 else break; } printf(" %d", count); if (count > max) max = count; } //printf("%d", max); }
- 해결됨it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
vector 사용법 질문
map(30)이 아닌 map[30]으로 선언하는 이유가 궁금합니다.
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
제가 짠 코드는 비효율적인 코드일까요?
9번 모두의 약수 문제를 참고하여 메모리에 저장하는 방식으로 코드르 짜보았습니다. int main() { //freopen("input.txt", "rt", stdin); int a=0; int aa[200000]={0,}; aa[0]=1; aa[1]=1; cin >> a; for(int i=2; i<a; i++){ for(int j=i*2; j<a; j+=i){ aa[j]=1; } } int cnt=0; for(int i=0; i<a; i++){ if(aa[i]!=1){ cnt++; } } a==2 ? cout << 1 : cout << cnt; return 0; }
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
코드 리뷰 부탁드립니다.
안녕하세요 선생님 대기업 코딩테스트를 위해 선생님 강의를 들으며 한단계씩 성장 중인 대학생입니다. 33번 문제에서 3등을 한 점수를 찾는 과정에서 배열에서 3등의 점수가 정렬이 완료되면 뒤에 배열은 정렬할 필요가 없을 것 같아 조건문을 추가하여 3등까지만 정렬하도록 하였습니다. 해당 코드에 대해서 오류나 개선사항이 있는지 코드 리뷰 부탁드립니다. #include <iostream> using namespace std; int N, arr[101], rankk,resIdx, pre; int main() { resIdx = 2; cin >> N; for(int i = 0; i < N; i++) { cin >> arr[i]; } for(int i = 0; i < N - 1; i++) { int idx = i; for(int j = i + 1; j < N; j++) { if(arr[idx] < arr[j]) idx = j; } if(arr[idx] == pre) resIdx++; else rankk++; int temp = arr[i]; arr[i] = arr[idx]; arr[idx] = temp; pre = arr[i]; if(rankk == 3) break; } cout << arr[resIdx]; }
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
제 소스코드 한번 봐주시면 감사하겠습니다.
좋은 수업 잘 듣고 있습니다. 먼저 제 코드를 짜고 선생님 수업에 대한 내용을 확인하는 편인데, 일단 제 로직과 선생님의 로직에 약간의 차이는 있는 소스코드입니다. 저같은 경우에는, while 루프를 돌 때, 먼저 cnt라는 것이 현재 들어이는 Q의 size를 넣어줍니다. 그렇게 되면 level 1에서 찾아야하는 토마토 개수가 들어갈 것이고 해당하는 만큼 for문을 돌게 되면서 상하좌우를 서치하고 다시 Q에 넣어줍니다. Q에 넣더라도 처음의 Q size만큼 for문을 돌기 때문에 level 2로 넘어가지 않고 for문이 끝나고 다시 while의 처음으로 들어오게되는 정도의 차이정도가 있습니다. 39행부터 56행까지의 내용입니다. 이 로직이 틀린걸까요? 아니면 제가 틀린걸까요? test를 돌려보면 1, 2, 3번 파일은 맞추나 4, 5번 파일이 wrong_answer가 떠서 60점이 나옵니다. 소스코드는 아래와 같습니다. 감사합니다. #include<cstdio> #include<queue> #include<malloc.h> using namespace std; struct Loc{ int x; int y; Loc(int a, int b){ x = a; y = b; } }; int main(){ int n, m; int **arr; int dx[4] = {1, -1, 0, 0}; int dy[4] = {0, 0, 1, -1}; scanf("%d %d", &n, &m); arr = (int **)malloc(sizeof(int) * m); for(int i=0; i<m; i++){ arr[i] = (int *)malloc(sizeof(int) * n); } for(int i=0; i<m; i++){ for(int j=0; j<n; j++){ scanf("%d", &arr[i][j]); } } queue<Loc> Q; for(int i=0; i<m; i++){ for(int j=0; j<n; j++){ if(arr[i][j] == 1){ Q.push(Loc(j, i)); } } } int day = 0; while(!Q.empty()){ int cnt = Q.size(); for(int i=0; i<cnt; i++){ Loc tmp = Q.front(); Q.pop(); for(int j=0; j<4; j++){ int xx = tmp.x + dx[j]; int yy = tmp.y + dy[j]; if(xx >= 0 && xx < n && yy >= 0 && yy < m){ if(arr[yy][xx] == 0){ arr[yy][xx] = 1; Q.push(Loc(xx, yy)); } } } } day++; } printf("%d", day-1); for(int i=0; i<m; i++) free(arr[i]); free(arr); }
- 해결됨it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
3중 for문에서 i를 두번 사용하셨는데
21행에서 i를 사용하시면서 for문을 돌리고 게신데 29행에서도 for문을 통해서 i를 다시 조작하고 있습니다. 이래도 되나요??
- 해결됨it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
다중 for loop 조합이 dfs 보다 안 좋은 점이 무엇인가요?
예를 들어 0~5 중에 3개를 조합한다고 하면 아래처럼 3중 포문을 돌리는 게 dfs 를 쓰는 것과 유의미한 차이가 있나요? 과정만 보면 설명하신 거랑 크게 다를 게 없을 것 같은데.. for (i = 0; i <=5; i++) { for (j = i+1; j <= 5; j++) { for (k = j+1; k <= 5; k++) { // 조합완성 } } }
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
반례 질문드립니다
문제조건에서 재정에 도움이 되는 도로도 존재하고 그 값은 음수로 표현한다고 하셨는데요 이경우는 ch배열에서 이미 방문을 했더라도 유지보수하는게 이득이니 무조건 res 값에 추가해줘야하는게 맞는거 같은데 4 4 1 2 -1 1 3 -2 2 3 -2 3 4 5 이 테스트 케이스에서 정답이 0이 되어야하는거 아닌가요?
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
bool operator< 질문드립니다.
크루스칼에서 bool operator을 작성할떄는 bool operator<( Edge &b){ return val > b.val; } 와 같이 했엇는데 왜 프림에서는 bool operator<(const Edge &b)const { return val > b.val; } 와같이 작성한건가요?? const 구조체를 받는 이유와 함수뒤에 붙은 const는 어떤의미인지 궁금해요!!
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
75번 정렬 질문입니다!
75번에서 벡터에 넣고 정렬을 하는데 정렬이 내림차순인데 마지막 부분 (20,1) 이랑 (30,1)은 왜 (20,1) (30,1) 이렇게 나오는 걸까요??
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
43번 뮤직비디오 오류 질문드립니다
테스트 케이스가 9 9 1 2 3 4 5 6 7 8 9 일때 정답이 9인거 같은데 선생님 코드는 1이 뜨는것 같아요
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
합병정렬로 풀기
이강의에는 합병정렬로 푸는방법은 안나와있는건가요? 현재 26번째 듣고있는데 나중에 나오나요?
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
채점 프로그램 사용법
채점 프로그램을 사용하려면 작성한 소스코드를 AA라는 이름의 실행파일로 만든다음에 각 폴더에 넣고 Judge를 실행하면 되는건가요? 그리고 in과 out 파일은 사용자가 직접 추가해도 되는건가요?
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
bool isPrime(int x){} 함수 질문입니다
<소수판별함수> bool isPrime(int x){ int cnt=0; for(int i=1; i<=x; i++){ if(x%i==0) { cnt++; } } if(cnt==2){ return true; } else return false; } <메인함수> if(isPrime(sum)) cout<<sum<<" "; ---------------------------- 저는 이렇게 짰는데, 이렇게 짜도 잘 돌아간다면 상관없나요??
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
해싱에대해서
해싱이란 방법으르 사용하는게 가장좋다고 설명이나왔는데 해싱이 단순히 배열을만들어서 비교하는 방법인가요? 해싱의 정의에 대해 궁금합니다