본문 바로가기

CodingTest Exam

(110)
54. 올바른 괄호(stack) (it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비) ★★★☆☆ #include #include using namespace std; int main() { stack s; char a[30]; scanf("%s", &a); for(int i = 0; a[i] != '\0'; i++) { if(a[i] == '(') s.push(a[i]); else if(a[i] == ')') { if(s.empty()) { printf("NO"); return 0; } else s.pop(); } } if(s.empty()) printf("YES"); else printf("NO"); return 0; } 1. string 입력을 저장할 char 배열 a, stack s 를 선언한다. 2. char a 의 원소를 확인하면서 '(' 라면 push, ')' 라면 pop을 한다. 3. ..
53. K진수 출력 (it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비) ★★☆☆☆ #include #include using namespace std; int top = -1; int a[1000]; void push(int x) { a[++top] = x; } int pop() { return a[top--]; } int main() { int n, k; scanf("%d %d", &n, &k); char b[20] = "0123456789ABCDEF"; while(n > 0) { push(n%k); n /= k; } while(top > -1) { printf("%c", b[pop()]); } return 0; } 1. 숫자를 변환해서 저장할 배열 a(스택으로서 사용될 것임), stack의 pop()과 push() 역할을 해줄 top, 변환할 숫자 n과 진수 k를 선언하고 입력받는..
52. Ugly Numbers (it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비) ★★★★☆ #include #include #include using namespace std; int main() { int n, min = 2147000000, p2, p3, p5; scanf("%d", &n); vector a(1501, 0); vector b; a[1] = 1; p2 = 1; p3 = 1; p5 = 1; for(int i = 2; i
51. 영지(territory) 선택 : large (it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비) ★★☆☆☆ #include #include using namespace std; int main() { int h , w, sh, sw, max = 0, temp = 0; scanf("%d %d", &h, &w); vector num(w+1, 0); vector ter(h+1, num); vector ans(h+1, num); for(int i = 1; i < ter.size(); i++) { for(int j = 1; j < num.size(); j++) scanf("%d", &num[j]); ter[i] = num; } scanf("%d %d", &sh, &sw); for(int i = 1; i
50. 영지(territory) 선택 : small (it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비) ★★☆☆☆ #include #include using namespace std; int main() { int h , w, row, column, sh, sw, max = 0, sum = 0; scanf("%d %d", &h, &w); vector num(w, 0); vector ter(h, num); for(int i = 0; i w-sw) { column = 0; row++; } } printf("%d", m..
49. 블록의 최댓값(2차원 배열 응용) (it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비) ★★☆☆☆ #include #include using namespace std; int main() { int n, row, column, sum = 0; scanf("%d", &n); vector a(n, 0); vector up(n, a); vector front(n, 0); vector side(n, 0); for(int i = 0; i < n; i++) scanf(" %d", &front[i]); for(int i = 0; i < n; i++) scanf(" %d", &side[i]); column = 0; while(true) { for(int i = 0; i < front.size(); i++) { row = n-1; for(int j = 0; j < side.size(); j++) { if(front[..
48. 각 행의 평균과 가장 가까운 값 (it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비) ★★☆☆☆ #include #include #include using namespace std; int main() { int sum, mid, val = 0, min = 2147000000, temp; vector row(9, 0); vector num(9, row); for (int i = 0; i < num.size(); i++) { for (int j = 0; j < row.size(); j++) { scanf(" %d", &row[j]); } num[i] = row; } for (int i = 0; i < num.size(); i++) { sum = 0; for (int j = 0; j < row.size(); j++) { sum += num[i][j]; } mid = sum / 9.0 + 0.5; for..
47. 봉우리(2차원 배열 탐색) (it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비) ★★☆☆☆ #include #include using namespace std; int main() { int n, count = 0;; bool flag = true; scanf("%d", &n); vector num(n + 2, 0); vector map(n + 2, num); for (int i = 1; i < map.size() - 1; i++) { for (int j = 1; j < num.size() - 1; j++) { scanf(" %d", &num[j]); } map[i] = num; } for (int i = 1; i