
[알고리즘 문제] 58. 이진트리 깊이우선탐색(DFS)
2020. 10. 7. 10:32
문제 풀이/알고리즘 문제풀이
코드 #include #include #include #include using namespace std; void D(int v) { if (v > 7) return; else { cout

[알고리즘 문제] 57. 재귀함수 이진수 출력
2020. 10. 7. 10:16
문제 풀이/알고리즘 문제풀이
코드 #include #include #include #include using namespace std; void recur(int n) { if (n == 0) return; else { recur(n / 2); cout > n; recur(n); return 0; } 출력 결과 채점 결과 해당 포스트는 'it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비' 강의를 수강하며 개인 백업용으로 메모하였습니다. 인프런: https://www.inflearn.com/course/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98# it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 - 인프런 알고리즘과 자료구조를 이용해 문제해결력을 기르는게..

[알고리즘 문제] 56. 재귀함수 분석
2020. 10. 7. 10:03
문제 풀이/알고리즘 문제풀이
코드 #include #include #include #include using namespace std; void recur(int n) { if (n == 0) return; else { recur(n - 1); cout n; recur(n); return 0; } 출력 결과 함수가 호출되면 stack에 스택 프레임이 생성된다. 스택 프레임은 호출 정보(지역 변수, 매개변수, 복귀해야 할 주소 등)를 기록한다. 해당 포스트는 'it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비' 강의를 수강하며 개인 백업용으로 메모하였습니다. 인프런: https://www.inflearn.com/course/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98# it 취업을 위..

[알고리즘 문제] 55. 기차운행(stack 응용)
2020. 10. 6. 10:03
문제 풀이/알고리즘 문제풀이
코드 #include #include #include #include using namespace std; int main(void) { int n, m, i, idx = 0; cin >> n; stack st; vector vt(n); vector vt2(n); vector vtc; for (i = 0; i > vt2[i]; st.push(vt2[i]); vtc.push_back('P'); while (true) { if (st.empty()) break; if (st.top() == vt[idx]) { st.pop(); vtc.push_back('O'); ++idx; } else break; }..

[알고리즘 문제] 54. 올바른 괄호(stack)
2020. 10. 6. 09:39
문제 풀이/알고리즘 문제풀이
코드 #include #include #include using namespace std; int main(void) { int i, flag = 0; char c[31]; cin >> c; stack st; for (i = 0; c[i] != '\0'; ++i) { if (c[i] == '(') st.push(c[i]); else { if (st.empty()) { cout

[알고리즘 문제] 53. K진수 출력
2020. 10. 6. 09:29
문제 풀이/알고리즘 문제풀이
코드 #include #include #include using namespace std; int main(void) { int n, k, tmp, i; cin >> n >> k; char arr[100]; int top = -1; char c[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; tmp = n; while (tmp != 0) { arr[++top] = c[tmp % k]; tmp /= k; } while (top > -1) { cout > n >> k; stack sChar; char arr[100]; int top = -1; char c[16] = { '0', '1', '2', ..

[알고리즘 문제] 52. Ugly Numbers
2020. 10. 6. 01:09
문제 풀이/알고리즘 문제풀이
코드 #include #include #include using namespace std; int main(void) { int n, i; cin >> n; vector vInt(n + 1); int p2 = 1, p3 = 1, p5 = 1, min = 2147000000; int v2, v3, v5; vInt[1] = 1; for (i = 2; i

[알고리즘 문제] 51. 영지(territory) 선택 : (large)
2020. 10. 5. 23:57
문제 풀이/알고리즘 문제풀이
코드 #include #include #include using namespace std; int main(void) { int h, w, i, j, sum, max = -2147000000; cin >> h >> w; vector a(h + 1, vector(w + 1)); vector dy(h + 1, vector(w + 1)); for (i = 1; i a[i][j]; dy[i][j] = dy[i][j-1] + dy[i-1][j] - dy[i-1][j-1] + a[i][j]; } } int hh, ww, tmp; cin >> hh >> ww; for (i = hh; i

[알고리즘 문제] 50. 영지(territory) 선택 : (small)
2020. 10. 4. 20:59
문제 풀이/알고리즘 문제풀이
코드 #include #include #include using namespace std; int main(void) { int h, w, i, j, t; int height, width, max = -2147000000; int p1, p2; cin >> h >> w; vector vInt; vector temp; for (i = 0; i > temp[j]; } vInt.push_back(temp); } cin >> height >> width; for (i = 0; i = height) break; t += vInt[i + p1][j + p2]; p2++; } if (ma..

[알고리즘 문제] 49. 블록의 최댓값
2020. 10. 3. 21:03
문제 풀이/알고리즘 문제풀이
코드 #include #include #include using namespace std; int main(void) { int n, temp, i, j, count = 0; cin >> n; vector vInt; vector vTemp; for (i = 0; i > temp; vTemp.clear(); for (j = 0; j > temp; for (j = 0; j temp) vInt[j][i] = temp; count += vInt[j][i]; } } c..

[알고리즘 문제] 48. 각 행의 평균과 가장 가까운 값
2020. 10. 3. 19:39
문제 풀이/알고리즘 문제풀이
코드 #include #include #include using namespace std; int main(void) { int arr[9][10] = { 0 }; int num[9] = { 0 }; int i, j, sum = 0; float temp; for (i = 0; i > arr[i][j]; temp += arr[i][j]; } temp /= 9; if ((int)(temp * 10) % 10 >= 5) ++temp; arr[i][9] = temp; } for (i = 0; i a..

[알고리즘 문제] 47. 봉우리
2020. 10. 3. 19:24
문제 풀이/알고리즘 문제풀이
코드 #include #include #include using namespace std; int main(void) { int n, i, j, t, count = 0; cin >> n; vector vInt; vector vTemp; for (i = 0; i > t; vTemp.push_back(t); } } vInt.push_back(vTemp); } for (i = 1; i

[알고리즘 문제] 46. 멀티태스킹(카카오 먹방 문제 변형)
2020. 10. 2. 22:31
문제 풀이/알고리즘 문제풀이
코드 #include #include #include using namespace std; int main(void) { int n, i, k, temp = 0, idx = -1, sum = 0; cin >> n; vector vInt(n); for (i = 0; i > vInt[i]; sum += vInt[i]; } cin >> k; temp = 0; if (sum

[알고리즘 문제] 45. 공주 구하기
2020. 10. 2. 22:02
문제 풀이/알고리즘 문제풀이
코드 #include #include #include using namespace std; int main(void) { int n, k, i, count = 0, idx = 0, size = 0, result = 0; cin >> n >> k; vector vBool(n); size = n; while (size > 1) { if (!vBool[idx]) { if (++count >= k) { vBool[idx] = true; --size; count = 0; } else result = idx; } if (++idx >= n) idx = 0; } cout

[알고리즘 문제] 44. 마구간 정하기(이분검색 응용)
2020. 10. 2. 21:42
문제 풀이/알고리즘 문제풀이
코드 #include #include #include using namespace std; int count(const vector& vInt, const int size) { int i, prev = vInt[0], cnt = 2; for (i = 1; i = size) { ++cnt; prev = vInt[i]; } } return cnt; } int main(void) { int n, c, i, mid, res, temp; int left, right = 0; cin >> n >> c; vector vInt(n); for (i = 0; i > vInt[i]; right += vInt[i]; } ..

[알고리즘 문제] 43. 뮤직비디오(이분검색 응용)
2020. 10. 2. 20:48
문제 풀이/알고리즘 문제풀이
코드 #include #include #include using namespace std; int count(const vector& vInt, const int size) { int i, cnt = 1, sum = 0; for (i = 0; i size) { cnt++; sum = vInt[i]; } else { sum += vInt[i]; } } return cnt; } int main(void) { int n, m, i, left = 1, right = 0, mid, res, max = -2147000000; cin >> n >> m; vector vInt(n); for (i = 0; i > v..

[알고리즘 문제] 42. 이분검색
2020. 10. 2. 04:47
문제 풀이/알고리즘 문제풀이
코드 #include #include #include using namespace std; int main(void) { int n, m, i, left, right, center, result = -1; cin >> n >> m; vector vInt(n); for (i = 0; i > vInt[i]; sort(vInt.begin(), vInt.end()); left = 0; right = n - 1; while (left

[알고리즘 문제] 41. 연속된 자연수의 합
2020. 10. 2. 04:32
문제 풀이/알고리즘 문제풀이
코드 #include #include #include using namespace std; int main(void) { int n, i, j, sum, num, cnt, cnt2 = 0; bool flag; cin >> n; i = n / 2; if (n % 2 != 0) i += 1; for (; i >= 0; --i) { sum = 0; cnt = 0; num = i; flag = false; while (true) { sum += num; if (sum == n) { flag = true; ++cnt2; break; } else if (sum > n) break; --num; ++cnt; } if (flag) { for (j = cnt; j > 0; --j) cout