BOJ 128

[BOJ] 9012번: 괄호

https://www.acmicpc.net/problem/9012 STL에 있는 stack을 이용하면 쉽게 해결할 수 있다. (면 push, ) 일 때 스택이 비어있으면 NO 출력하고 종료, 아니면 pop을 반복한다. 문자열을 다 돌고 마지막에 스택에 뭔가가 있다면 VPS가 아니므로 NO를 출력해야 한다. #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false), cin.tie(0); int T; cin >> T; while (T--) { string s; stack stk; bool flag = false; cin >> s; for (auto &i : s) { if (i == '(') stk...

온라인저지 2018.07.26

[BOJ] 10845번: 큐

https://www.acmicpc.net/problem/10845 자료구조 보면 class로 구현하고 싶어서 한 번 해봤다.. 별로 좋지 않은 선택인 것 같다. 적어도 PS에서만큼은.... #include using namespace std; class Queue { public: int is_empty() { return (vsize == 0); } void push(int x) { Array[vrear] = x; vrear++; vsize++; } int pop() { if (is_empty()) return -1; else { int ans = Array[vfront++]; vsize--; return ans; } } int size() { return vsize; } int front() { r..

온라인저지 2018.07.26

[BOJ] 10828번: 스택

https://www.acmicpc.net/problem/10828 6달 전에 짠 코드는 4ms가 나왔는데 똑같은 코드로 이틀 전에 제출했더니 0ms가 나왔다. ㅋㅋㅋ 재미있네 이런 문제는 사실 N의 제한이 있기 때문에 굳이 링크드 리스트로 구현할 필요는 없다. 그리고 문자열을 다 볼 필요 없이 앞 1~2자리만 봐도 어떤 입력인지 알 수 있다. #include #include #define MAX 10001 typedef struct stack { int Stack[MAX]; int size; int empty; int top; } stack; stack Stk; int main() { Stk.empty = 1, Stk.size = 0; int N; scanf("%d", &N); for (int i = ..

온라인저지 2018.07.26

[BOJ] 15904번: UCPC는 무엇의 약자일까?

https://www.acmicpc.net/problem/15904 이런 문제 좀 재미있다 ㅎㅎ 공백도 받은 방법은 getline(cin, [string])이라는 것도 다시 상기시키는 좋은 계기가 되었다. #include #include using namespace std; int main() { ios_base::sync_with_stdio(false), cin.tie(0); const char al[] = {'U', 'C', 'P', 'C'}; string str; int idx = 0; getline(cin, str); for (auto &i : str) { if (idx == 4) break; else if (i == al[idx]) idx++; } if (idx == 4) cout

온라인저지 2018.07.26

[BOJ] 11651번: 좌표 정렬하기 2

https://www.acmicpc.net/problem/11651 11650번: 좌표 정렬하기에 이은 STL 연습용 문제다. 주어진 조건에 따라 코드로 잘 적으면 된다. #include #include #include #include using namespace std; bool COMP(const pair &a, const pair &b) { if (a.second == b.second) return a.first < b.first; return a.second < b.second; } int N; vector v; int main() { scanf("%d", &N); for (int i = 0, a, b; i < N; ++i) { scanf("%d %d", &a, &b); v.push_back(ma..

온라인저지 2018.07.26

[BOJ] 11650번: 좌표 정렬하기

https://www.acmicpc.net/problem/11650 문제에서 하라는데로만 하면 되는데 COMP함수만 잘 짜면 된다.(주어진 조건에 따라서...) STL을 연습하는 문제였다. #include #include #include #include using namespace std; bool COMP(const pair &a, const pair &b) { if (a.first == b.first) return a.second < b.second; return a.first < b.first; } int N; vector v; int main() { scanf("%d", &N); for (int i = 0, a, b; i < N; ++i) { scanf("%d %d", &a, &b); v.push..

온라인저지 2018.07.26

[BOJ] 2747번: 피보나치 수

https://www.acmicpc.net/problem/2747 n번째 피보나치 수를 출력하는 문제다. 재귀 또는 반복문으로 풀 수 있다. + 메모이제이션 #include int dp[46] = {0, 1, 1, 2}; int fibo(int n) { if (dp[n]) return dp[n]; return dp[n] = fibo(n - 1) + fibo(n - 2); } int main() { int N; scanf("%d", &N); printf("%d\n", fibo(N)); return 0; } #include int main() { int f[100], n; f[0] = 1, f[1] = 1; scanf("%d", &n); for (int i = 2; i

온라인저지 2018.07.26