본문 바로가기

PS

(112)
[C++] BOJ (백준) 1003 : 피보나치 함수 문제 1003번: 피보나치 함수 (acmicpc.net) 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 코드 #include #pragma clang diagnostic push #pragma ide diagnostic ignored "ArrayIndexOutOfBounds" #define MAX_N 40 using namespace std; int dpZero[MAX_N + 1]; int dpOne[MAX_N + 1]; int getZero(int n) { if (n == 0) return 1; if (n == 1) return 0; if (dpZero[n]) return dpZero[n]; retur..
[C++] BOJ (백준) 18111 : 마인크래프트 문제 18111번: 마인크래프트 (acmicpc.net) 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 코드 (브루트포스) #include #include using namespace std; int n, m, b; int mnHeight = 256; int mxHeight = 0; vector map; void input() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cin >> n >> m >> b; map.resize(n, vector(m)); fo..
[C++] BOJ (백준) 15829 : Hashing 문제 15829번: Hashing (acmicpc.net) 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정 www.acmicpc.net 코드 #include #define R 31 #define M 1234567891 using namespace std; typedef long long int lld; lld R_pow(int n) { lld res = 1; for (int i = 0; i < n; i++) { res *= R; res %= M; } return res; } lld hashing(int l, const string &s)..
[C++] BOJ (백준) 11866 : 요세푸스 문제 0 문제 11866번: 요세푸스 문제 0 (acmicpc.net) 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 코드 (std::queue) #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); queue q; int n, k; cin >> n >> k; for (int i = 1; i
[C++] BOJ (백준) 11651 : 좌표 정렬하기 2 문제 11651번: 좌표 정렬하기 2 (acmicpc.net) 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 코드 1 (std::pair) #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector v(n); for (auto &i: v) { cin >> i.second >> i.fir..
[C++] BOJ (백준) 11650 : 좌표 정렬하기 문제 11650번: 좌표 정렬하기 (acmicpc.net) 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 코드 1 (std::pair) #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector v(n); for (auto &i: v) { cin >> i.first >> i.second; ..
[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..