월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
55강 가차운행에서
코딩테스트에서 이렇게 system("cls"); cout << "impossible"; imposible 시에 콘솔화면을 지우고 출력해도 되나요 ? (왜냐면 제 코드는 P나 O값을 배열에 넣지 않고 그냥 출력하기 떄문에 imposible 이더라도 P나O가 출력이 됩니다. 그렇기때문에 지우고 imposible 출력하도록 하였는데요) #include <iostream> #include <stack> #include <vector> #include<algorithm> using namespace std; int main(void) { int i = 0, arr[4] = { 2,3,1,4 }, search = 1; //cin >> n; //cin >> m; stack<int> s; for(i=0;i<4;i++){ s.push(arr[i]); cout << 'P'; while (!s.empty()) { if (s.top() == search) { search++; s.pop(); cout << 'O'; } else break; } } if (!s.empty()) { system("cls"); cout << "impossible"; } }
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
왜 이렇게 벡터를 선언하면 작동이 되지 않을까요?
각각의 vector를 따로 선언하지 않고, 한꺼번에 모아서 한꺼번에 정렬하면 보시는 것 처럼 정상 작동이 되지 않습니다 입력은 원래와 같이 5 2 7 10 5 3 5 3 10 17 12입니다. 정상출력은 3 5 10입니다. 이에 실제로 출력해보니, 첫번째 벡터는 7 10 5 3 5 두번째 벡터는 3 10 3 10이 되는 것을 확인했습니다 그러나, vector를 따로 선언하고 입력을 넣으면, 제대로 입력되는 것을 확인할 수 있습니다. 어떠한 이유일까요?
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
배열 위치
int a[60], b[60]; 이것을 main() 함수에 집어넣으면 no 라고 나오고 ex) int main() { int a[70],b[70]; main()위에 전역함수? ex) int a[70],b[70]; int main(){ 로 넣으면 yes로 나오는데 왜 그런건가요..
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
선생님 안녕하세요!!
선생님, 강의 항상 잘 보고 있습니다. 저는 삼성전자가 목표입니다. 일단 시뮬레이션이나 DP부분을 제외하고 BFS DFS는 최소 두 번씩 들으면서 어느 정도 감을 잡고 있는데요, 그리고 맨 마지막에 선생님이 적어주신 풀어볼 만한 문제 항목을 참고하여 한달 내내 그것만 풀었네요..ㅎㅎ 완벽하게 모든 문제를 풀진 못했지만 그래서 이제 삼성 기출 문제에 도전을 해보려고 하는데 기출 문제를 풀면 엄청 갑자기 벽이 느껴져서 이후 어떻게 공부하면 좋을 지 여쭙고 싶습니다.. 그냥 이대로 계속 문제를 풀고 모르면 누군가의 코드를 참고하거나 설명을 듣는 방식을 고수해야할지 뭔가 다른 방식이 필요할지 감이 오질 않네요. 감사합니다!!
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
48??
48만큼 빼줘야하는 이유가 뭔가요?? else year=2000+((a[0]-48)*10+(a[1]-48));
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
max 와 min
int max = -214000000; int min = 214000000; Q1.여기서 max 와 min이 바뀐이유가 뭘까용? int max = 214000000; int min = -214000000; 이렇게 max , min을 입력하고 빌드 실행하면 이상한 값이 출력되던데요. Q2. 그 이유가 있을까요??
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
깃허브 업로드 관련 질문 드립니다.
안녕하세요. 강의를 수강 중인 학생입니다. 수강 중 깃허브 업로드와 관련하여 질문 드립니다. 문제를 풀면서 제가 작성한 코드와 주석으로 두세 줄 정도의 간단한 문제 설명, 코드 설명을 깃허브에 public으로 업로드 하려는데 혹시 문제가 있을까요?
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
38번 문제 시간초과
선생님 안녕하세요. 강의 잘 듣고 있습니다. 38번 문제를 어렵게 어렵게 혼자 풀어봤는데요 답은 잘 나오지만 시간 초과로 채점기에 0점이 나왔습니다. 선생님께서 풀어주신 것과 제 코드를 비교해 보면 pos 변수를 사용 여부 차이 정도 있는 것 같은데 이렇게 코드를 짜면 왜 타임 리밋이 나올까요? 좋은 강의 감사드립니다 :) #include <iostream> #include <vector> #include <algorithm> #include <utility> #include <cstdlib> #include <string> using namespace std; int main() { ios_base::sync_with_stdio(false); freopen("input.txt", "rt", stdin); int n; cin>>n; vector<int> is(n+1); vector<int> os(n+1); for(int i=1;i<n+1;i++){ cin>>is[i]; } for(int i=n;i>=1;i--){ for(int idx=i;idx<i+is[i];idx++){ os[idx]=os[idx+1]; } os[i+is[i]]=i; } for(int z=1;z<n+1;z++){ cout<<os[z]<<" "; } return 0; }
- 해결됨it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
코드를 똑같이 실행시켰는데 자꾸 에러가 뜹니다
#include<iostream> #include<vector> #include<algorithm> using namespace std; struct Loc{ // 구조체 선언 int x, y, z; // 구조체 멤버 선언 Loc(int a, int b, int c){ // 구조체 생성자 선언(초기화하기 위햬) x=a; y=b; z=c; } // 크기를 비교하는 연산자, 연산자 오버로딩 함, 두 객체의 크기를 비교함, 정렬기준을 잡음 bool operator<(const Loc &b)const{ // 구조체를 주소로 받음, b를 통해서 원본을 바꿈, 이를 차단하기 위해서 const 선언 // operator를 const로 선언하여 x,y,z를 변경할 수 없게 함 return x<b.x; // opreator에 있어서 호출한 객체 x는 앞에 Loc &b해서 넘어온 인자로 넘어온 객체는 뒤에 그리고 앞에것을 작은것 뒤에것을 큰 걸로 정렬을 하게끔 오름차순으로 정렬함 } }; int main(){ // freopen("input.txt","rt",stdin); vector<Loc> XY; // 구조체형 vector 선언 XY.push_back(Loc(2, 3, 5)); XY.push_back(Loc(3, 6, 7)); XY.push_back(Loc(2, 3, 1)); XY.push_back(Loc(5, 2, 3)); XY.push_back(Loc(3, 1, 6)); // 구조체 생성자 활용하여서 그 값을 넣음 sort(XY.begin(),XY.end()); // 정렬을 시킴, x를 기준으로 구조체 객체를 정렬시킴, 즉 2, 3, 5에서의 x 값 2의 값으로 정렬함 뒤의 값은 무관함 for(auto pos:XY) cout << pos.x << " " << pos.y << " " << pos.z << endl; return 0; } 이렇게 코드를 똑같이 쳤는데 컴파일 에러가 뜹니다 에러의 내용이 [Error] 'pos' does not name a type이라고 뜨는데 선생님 코드와 동일한데 제 코드에는 왜 에러가 뜨는지 모르겠습니다
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
풀이 방법 질문 있습니다
안녕하세요 선생님. 강의 잘 듣고 있습니다. 다름이 아니라 이번 문제를 꼭 버블 정렬로 풀어야 하는지에 대해서 질문하고 싶은데요, 저는 문제를 보고 버블정렬로 풀어야겠다라는 생각이 들지 않고, 그냥 입력받은 배열을 순차탐색하면서 음수만 순서대로 다른 배열에 저장하고, 양수만 따로 순서대로 또다른 배열에 저장한 뒤, 음수를 저장한 배열의 element값을 순서대로 기존 배열에 대입하고, 양수를 저장한 배열의 element값을 순서대로 기존 배열에 대입하여 값을 출력하는 방식으로 문제를 해결하였습니다. 제가 아직 실력이 부족해서 그런것도 있겠지만, 이 문제를 꼭 버블정렬로 풀어야 하는지 궁금합니다.
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
25번 문제 관련 질문!
안녕하세요 선생님 강의 잘 듣고 있습니다. 현재 25번 문제를 풀었는데요, 다른 부분은 강의 코드와 동일한데 일반 배열로 선언하지 않고 벡터로 선언을 했습니다. vector<int> a(n); vector<int> b(n); 이런 식입니다. 그런데, 점수가 40점이 나오네요. 어떤 차이가 있는지 알고 싶습니다. 감사합니다.
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
안녕하세요 선생님 요새 파이썬도 공부하는데 문제가 있어서 글을 남깁니다.
선생님 항상 강의 잘 듣고 있습니다... 1. 파이썬 코드(체인해싱테이블)여쭤볼게 있는데 질문해도 괜찮을까요?? 2. 지금 선생님 c++ 강의를 다 들어가는데 코딩테스트를 볼 때 파이썬과 c++ 사이에서 고민이 많이되고 있습니다. 익숙하고 더 오래쓴 언어는 c++인데 파이썬이 좀더 쉽고 편하다고 들어서 지금 파이썬 기본적인 문법은 떼고 있습니다. 파이썬으로는 기본적인 자료구조(스택,큐,트리,해시테이블)까지는 했어요.. 처음에는 두 언어 사이가 헷갈려서 애 먹었는데 이젠 좀 쓸만하네요 질문이 좀 이상한데, 저의 경우에 익숙한 언어인 c++과 파이썬 사이에서 어떤 언어를 선택하는게 더 좋을지 궁금합니다.
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
코딩테스트 관련 질문입니다.
안녕하세요 선생님 LG CNS 공채의 코딩테스트 관련된 안내문을 봤는데 대상언어가 Java, C, C#, Python 중 택1 이라고 나와있던데 이러면 C++로는 못푸는건가요? 이강의는 C, C++이라 이강의에서 배우면 상관이없나요?
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
안녕하세요 선생님 저는 bfs로 풀어봤는데요..
예제랑 테스트케이스(input 1,2) 전부 맞게 나오는데 왜 틀렸는지 모르겠어서 주석과 함께 설명을 넣었습니다. 어느 부분이 문제인지 확인해주시면 감사하겠습니다ㅜ! #include<stdio.h> #include<iostream> #include<vector> #include<queue> #define MAX 21 using namespace std; int map[MAX][MAX]; int dp[MAX][MAX]; bool visited[MAX][MAX]; int n; typedef struct Node { int x; int y; int dp; }node; queue<node>Q; int dx[2] = { 0,1 }; int dy[2] = { 1,0 }; void BFS() { node current; while (!Q.empty()) { current.x = Q.front().x; current.y = Q.front().y; current.dp = Q.front().dp; Q.pop(); /* printf("<<<(%d,%d,%d)에서 탐색을 시작합니다. >>>\n\n", current.x, current.y, current.dp); printf("<<<현재 dp배열의 상태입니다. >>\n\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { printf("%d ", dp[i][j]); } printf("\n"); }*/ for (int i = 0; i < 2; i++) { int x = current.x + dx[i]; int y = current.y + dy[i]; if (x >= n || y >= n) {continue;} if (dp[x][y] > current.dp + map[x][y]) { /*printf("current.dp : %d\n\n", current.dp); printf("map[x][y] : %d\n\n", map[x][y]);*/ dp[x][y] = current.dp + map[x][y]; node next; next.x = x; next.y = y; next.dp = dp[x][y]; //printf("(%d,%d,%d)에서 BFS탐색을 계속합니다. \n\n", next.x, next.y, next.dp); Q.push(next); } } } return; } int main() { cin >> n; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> map[i][j]; dp[i][j] = 1000000; } } node start; start.x = 0; start.y = 0; start.dp = map[0][0]; dp[0][0] = map[0][0]; visited[0][0] = true; Q.push(start); BFS(); printf("%d ", dp[n - 1][n - 1]); }
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
선생님, 질문이 있습니다.
안녕하세요, 선생님, 강의 잘 듣고 있습니다. 다음은 제 코드인데 작동 방식은 강의를 들은 토대로 작성을 해서 크게 대동소이 합니다. 그런데 계속 이 문제 뿐만아니라 dp 모든 문제들을 채점돌려보면 시간초과가 나고 있습니다.. 지금 소스코드와 비교를 해도 크게 다르지는 않은데 이유를 모르겠습니다. 혹시 제가 비쥬얼 스튜디오를 쓰고 있어서 #include<bits/stdc++.h>를 안써서 그런것인지..이거도 궁금하네요. 아 그리고 새해 복 많이 받으세요!! #include<stdio.h> #include<iostream> #include<vector> using namespace std; typedef struct block { int space; int height; int weight; }Block; int dy[101]; Block blocklist[101]; int n; int main() { cin >> n; for (int i = 1; i <= n; i++) { int s, h, w; cin >> s >> h >> w; blocklist[i].space = s; blocklist[i].height = h; blocklist[i].weight = w; } int ans = 0; dy[1] = blocklist[1].height; for (int i = 2; i <= n; i++) { int max = 0; //printf("\n\n<<현재 기준점 블럭의 정보 : %d %d %d >>\n\n", blocklist[i].space, blocklist[i].height, blocklist[i].weight); for (int j = i - 1; j > 0; j--) { if (blocklist[j].space > blocklist[i].space && blocklist[j].weight > blocklist[i].weight && max < dy[j]) { //printf("넓이 비교 %d > %d \n\n", blocklist[j].space, blocklist[i].space); //printf("무게 비교 %d > %d \n\n", blocklist[j].weight, blocklist[i].weight); max = dy[j]; //printf("현재 max값 : %d\n\n\n", max); } } max = max + blocklist[i].height; /*printf("새로 쌓을 수 있는 블럭의 높이 :%d\n\n", blocklist[i].height); printf("새로 갱신된 max값 : %d\n\n", max);*/ dy[i] = max; //이거 안해줘가지고 계속 안된거임. if (max > ans) { ans = max; } } cout << ans; }
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
속도문제에 대해서 궁금한 것이 있습니다!
46번 멀티테스킹을 C++로 풀어보았는데요, 채점 폴더에서 4번째 부터 타임리미트가 떠요 ㅠㅠ 그래서 궁금증이 생겼습니다. deque을 사용하면 index를 사용해서 원소에 접근할 때 일반 배열보다 더 오래 걸리나요? 그게 아니라면, 어느 부분에서 더 느려져서 타임리미트가 뜨는 건가요? #include<iostream> #include<deque> #include<algorithm> using namespace std; #define endl '\n' int main(void) { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, k, i, sum = 0; cin >> n; deque<int> arr(n); for (i = 0; i < n; i++) { cin >> arr[i]; sum += arr[i]; } i = -1; cin >> k; if (sum <= k) { cout << -1; return 0; } while (k) { i++; if (i == n) i = 0; if (arr[i] > 0) { //cout << i << " "; k -= 1; arr[i]--; } } while (1) { i++; if (i == n) i = 0; if (arr[i] == 0) continue; else break; } cout << i+1; return 0; }
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
for문 거꾸로 셀때
예를 들어 문자열을 for문을 돌려서 읽을때 -> for(i=0;a[i]!='\0';i++)이렇게 a[i]!='\0'을 사용하여 strlen(a)을 사용하지 않고 for문을 돌릴 수 있었습니다 . 그러면 거꾸로 셀때도 strlen(a)을 위한 라이브러리를 쓰지 않고도 간단하게 for문을 만들고 싶은데 for(i=? ; i>=0; i--) 이런식으로 i=?에 무엇인 들어가야 하는지 방법이 있을까요? 아니면 아이디어라도 있을까요? . 추가설명) for문을 돌려서 strlen(a)대신 문자열 길이를 구하고 시작하라는 것 같은 전처리가 필요한 과정이 아닌 정말 for문 하나로만 가능하도록요 ! (파일 인클루드 없이, 전처리 할 필요가 없이 가능하도록)
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
예외사항 질문입니다.
안녕하십니까!? 늘 좋은 강의 잘 듣고 있습니다. 문제에서 보면, 1. 도시의 갯수가 1~100까지로 되어 있는데 코드상에서도, vector<pair<int, int> > map[100] 이 되어야 하는 것이지요? 2. 도로비용이 음수일 수 도 있다고 했는데, 이 경우도 고려가 되는건가요? 감사합니다.
- 해결됨it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
string 질문입니다!
안녕하세요. 이렇게하면 b가 출력이 안되는데 이유를모르겠습니다.. string 으로 하고싶으면 어떻게 바꿔야하나요? #include <iostream> #include <string> using namespace std; int main() { string a, b; getline(cin, a); int p =0; for(int i=0; i<a.size(); i++){ if(a[i] != ' '){ if(a[i] >= 65 && a[i] <= 90){ b[p++] = a[i]+32; }else{ b[p++] = a[i]; } } } b[p] ='\0'; cout<<b<<'\n'; return 0; }
- 미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
안녕하세요
선생님, 강의 잘 보고 있습니다. 해설 보기 전에 지금 미리 문제를 시도하고 있는데요, 여기 문제의 대목을 보면 - 가장 어린 심바는 몸집이 2이다 -각 토끼의 크기는 (1~7)이고 9는 심바를 뜻한다 라고 나와있는데 저 '9'는 심바의 처음 위치를 말하는 것이겠죠?? 그렇다면 처음 위치는 9이고, 심바의 몸집이 2이다. 이렇게 이해하는게 맞나요? 토끼의 크기와 같은 문장안에 언급되어 있어서 문제 이해하는데 헷갈리고 있습니다.