본문 바로가기

PS/BOJ

(97)
[C++] BOJ (백준) 11050 : 이항 계수 1 문제 11050번: 이항 계수 1 (acmicpc.net) 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 코드 #include using namespace std; int factorial(int num) { if (num == 0) return 1; return num * factorial(num - 1); } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n, k; cin >> n >> k; cout
[C++] BOJ (백준) 10989 : 수 정렬하기 3 문제 10989번: 수 정렬하기 3 (acmicpc.net) 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 코드 (Counting Sort) #include #define MAX_NUM 10000 using namespace std; int arr[MAX_NUM + 1]; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; while (n--) { int num; cin >> num; arr[num]++; } for (int i = 1..
[C++] BOJ (백준) 10866 : 덱 문제 10866번: 덱 (acmicpc.net) 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 코드 1 (std::deque) #include #include using namespace std; deque dq; void push_front(int num) { dq.emplace_front(num); } void push_back(int num) { dq.emplace_back(num); } bool empty() { return dq.empty(); } int pop_front() { if..
[C++] BOJ (백준) 10845 : 큐 문제 10845번: 큐 (acmicpc.net) 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 코드 1 (std::queue) #include #include using namespace std; queue q; void push(int num) { q.emplace(num); } bool empty() { return q.empty(); } int pop() { if (empty()) return -1; int res = q.front(); q.pop(); return res; } int s..
[C++] BOJ (백준) 10828 : 스택 문제 10828번: 스택 (acmicpc.net) 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 코드 1 (std::stack) #include #include using namespace std; stack st; void push(int num) { st.emplace(num); } int pop() { if (st.empty()) return -1; int res = st.top(); st.pop(); return res; } int size() { return (int) st.size..
[C++] BOJ (백준) 10816 : 숫자 카드 2 문제 10816번: 숫자 카드 2 (acmicpc.net) 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 코드 1 (이분탐색) #include #include using namespace std; vector v; int getFrequency(int num) { return (int) (upper_bound(v.begin(), v.end(), num) - lower_bound(v.begin(), v.end(), num)); } int main() { ios_base::syn..
[C++] BOJ (백준) 10814 : 나이순 정렬 문제 10814번: 나이순 정렬 (acmicpc.net) 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 코드 #include #include #include using namespace std; struct member { int age{}; string name; bool operator> n; vector v(n); for (auto &i: v) { cin >> i.age >> i.name; } stable_sort(v.begin(), v.end()); for (const auto &i: v) { cout
[C++] BOJ (백준) 10773 : 제로 문제 10773번: 제로 (acmicpc.net) 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 코드 #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); stack st; int k; cin >> k; while (k--) { int tmp; cin >> tmp; if (tmp == 0) st.pop(); else st.emplace(tmp);..