title: "연결 요소의 개수(11724)" category: 백준[Class-3] tags: [C++, JavaScript, 백준] date: "2021-05-21" 문제 링크 연결 요소의 개수(11724) C++ #include #include #include #include using namespace std; int find_root(map& parent, int num){ if(parent[num] == num) return num; else return parent[num]=find_root(parent, parent[num]); } void doUnion(map& parent, int num1, int num2){ int rootNum1 = find_root(parent, num1); in..
title: "최대 힙(11279)" category: 백준[Class-3] tags: [C++, JavaScript, 백준] date: "2021-05-21" 문제 링크 최대 힙(11279) C++ #include #include #include #include using namespace std; void solution(){ int n; cin >> n; priority_queue pq; for(int i=0; i> x; if(x == 0){ if(!pq.empty()){ cout
title: "찾기(1786)" category: 백준[Class-3] tags: [C++, JavaScript, 백준] date: "2021-05-20" 문제 링크 찾기(1786) C++ #include #include #include using namespace std; vector makeLPS(string pattern){ vector table(pattern.length(), 0); int left=0; int right=1; while(right0 && pattern[left] != pattern[right]){ // 패턴이 맞지 않을 경우 left = table[left-1]; } if(pattern[left] == pattern[right]){ // 패턴이 맞을 경우 table[right]..
title: "동전 0(11047)" category: 백준[Class-3] tags: [C++, JavaScript, 백준] date: "2021-05-20" 문제 링크 동전 0(11047) C++ #include #include #include using namespace std; void solution(){ int n, k; cin >> n >> k; vector coins; for(int i=0; i> coin; coins.push_back(coin); } // 가치가 큰 동전부터 진행(greedy) int total = k; int count = 0; for(int i=coins.size()-1; i>=0; i--){ int coin = coins[i]; if(total >= coin){ co..
title: "IOIOI(5525)" category: 백준[Class-3] tags: [C++, JavaScript, 백준] date: "2021-05-20" 문제 링크 IOIOI(5525) C++ #include #include #include using namespace std; vector makeLPS(string pattern){ vector table(pattern.length(), 0); int left=0; int right=1; while(right0 && pattern[left] != pattern[right]){ // 패턴이 맞지 않을 경우 left = table[left-1]; } if(pattern[left] == pattern[right]){ // 패턴이 맞을 경우 table[..
title: "회의실 배정(1931)" category: 백준[Class-3] tags: [C++, JavaScript, 백준] date: "2021-05-20" 문제 링크 회의실 배정(1931) C++ #include #include #include #include using namespace std; bool cmp(pair a, pair b){ if(a.second==b.second) return a.first > N; vector sessions; for(int i=0; i> start >> end; sessions.push_back({start, end}); } ..
title: "종이의 개수(1780)" category: 백준[Class-3] tags: [C++, JavaScript, 백준] date: "2021-05-20" 문제 링크 종이의 개수(1780) C++ #include #include #include #include using namespace std; void divide(map& log, vector& board, int size, int row, int col){ // check bool valid = true; int value = board[row][col]; for(int y=row; y
title: "잃어버린 괄호(1541)" category: 백준[Class-3] tags: [C++, JavaScript, 백준] date: "2021-05-19" 문제 링크 잃어버린 괄호(1541) C++ #include #include #include using namespace std; // 문제 풀이 함수 void solution(){ string exp; cin >> exp; // '+' 처리 vector nums; nums.push_back(stoi(exp)); // 처음 수 for(int i=0; i