[백준] 2504번 괄호의 값
·
백준 문제/자료구조
문제: 2504번: 괄호의 값  #include #include #include #include #include #include #include #include #include #include // setprecision을 사용하기 위한 헤더#include using namespace std;int main() { string str; cin >> str; int tmp = 1; int ans = 0; stack stack; for (int i = 0; i  한 40분 고민했는데 안 풀리길래 오늘은 어쩔 수 없이 다른 사람 코드를 먼저 봐버렸다.. 너무 어렵다 ㅠ_ㅠ;;; 솔직히 이해 잘 못 한 것 같아서 내일 일어나서 다시 스스로 풀고 다시 정리해야 할 것 같다..  ..
[백준] 10799번 쇠막대기
·
백준 문제/자료구조
문제: 10799번: 쇠막대기 #include #include #include #include using namespace std;int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); string input; cin >> input; int cnt = 0; stack sticks; char prev; for (int i = 0; i  처음에는 그냥 ')' 이걸 만날때마다 스택에서 하나 지우고, 그 후 스택의 size 를 더해주는 식으로 구현했는데 첫번째 예제만 맞고 나머지는 틀렸다. 그래서 더 생각해본 결과 ')' 를 만났을 때 무조건 스택의 size 를 더하는게 아니라 이전 문자를..
[백준] 1966번 프린터 큐
·
백준 문제/자료구조
문제: 1966번: 프린터 큐 #include #include #include #include using namespace std;int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int t; cin >> t; while (t-- > 0) { int n, m; // 문서의 개수, 궁금한 문서의 현재 위치(인덱스) cin >> n >> m; // first: 인덱스, second: 중요도 deque> docs; priority_queue importances; // 중요도를 최대힙으로 관리 for (int i = 0; i ..
[백준] 13305번 주유소
·
백준 문제/그리디
문제: 13305번: 주유소  #include #include #include #include using namespace std;int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; // 도시의 개수 cin >> n; vector nextDists; for (int i = 0; i > dist; nextDists.push_back(dist); } vector costs; for (int i = 0; i > cost; costs.push_back(cost); } long long prev = costs[0]; long lon..
[백준] 1158번 요세푸스 문제
·
백준 문제/자료구조
문제: 1158번: 요세푸스 문제  #include #include #include #include using namespace std;int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, k; cin >> n >> k; deque deq; for (int i = 1; i "; return 0;} 덱을 이용하면 쉽게 해결할 수 있는 문제였다. 원형큐에서 회전은 맨 앞에 있는 요소를 큐의 맨 뒤에 붙이는 것을 의미함을 앞으로도 잘 알고 있으면 될 것 같다. 작년에는 이 문제를 어떻게 풀어야 하는지 잘 모르겠어서 포기했는데 이번에 보니까 쉽게 풀려서 당황스러웠다. 확실히 자료구조..
[백준] 1021번 회전하는 큐
·
백준 문제/자료구조
문제: 1021번: 회전하는 큐  #include #include #include #include using namespace std;int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, m; // n: 큐의 크기, m: 뽑아내려고 하는 수의 개수 cin >> n >> m; deque rotateQueue; for (int i = 1; i order; for (int i = 0; i > tmp; order.push(tmp); } int totalCnt = 0; // 현재 큐의 상태를 저장해놓을 원형 큐 2개 만들기 deque dupleQue..
[백준] 1874번 스택 수열
·
백준 문제/자료구조
문제: 1874번: 스택 수열  #include #include #include #include using namespace std;int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin >> n; int cnt = 0; vector save; for (int i = 1; i > tmp; save.push_back(tmp); } stack s; string answer; int cur = 1; bool flag = false; while (true) { if (cnt == n) break; if (s...
[백준] 16953번 A -> B
·
백준 문제/그리디
문제: 16953번: A → B  #include #include #include using namespace std;int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int a, b; cin >> a >> b; // 정수 a를 b로 바꾸는데 필요한 연산의 최솟값을 구한다? // b를 a로 바꾸는 연산의 개수를 구하면 됨!! int cnt = 0; bool flag = false; while (a  이 문제는 BFS 로도 풀 수 있는 문제라고 하는데 나는 그리디 방법밖에 생각나지 않아서 그냥 그리디로 풀었다. 일단 이 문제는 입력으로 주어진 a 와 b 가 있다고 할 때, 가..
[백준] 1516번 게임 개발
·
백준 문제/위상정렬
문제: 1516번: 게임 개발  #include #include #include using namespace std;int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin >> n; // 0번 인덱스 안 씀 vector costs(n + 1); vector totalCosts(n + 1); vector indegs(n + 1); vector> linkedList(n + 1); for (int i = 1; i > costs[i]; int prev; while (true) { cin >> prev; ..
[백준] 16202번 MST 게임
·
백준 문제/MST
문제: 16202번: MST 게임  #include #include #include #include #include #include #include #include #include #include // setprecision을 사용하기 위한 헤더#include using namespace std;vector nodes;int find_set(int u) { if (nodes[u] == u) return u; return nodes[u] = find_set(nodes[u]);}void union_(int ur, int vr) { nodes[vr] = ur;}int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, m, ..