본문 바로가기

Algorithm

(203)
[BOJ] 12813번 이진수 연산 (C++) https://www.acmicpc.net/problem/12813 12813번: 이진수 연산 총 100,000 비트로 이루어진 이진수 A와 B가 주어진다. 이때, A & B, A | B, A ^ B, ~A, ~B를 한 값을 출력하는 프로그램을 작성하시오. www.acmicpc.net #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); char a[100001]; char b[100001]; cin >> a >> b; // A & B for(int i = 0; i < strlen(a); i++){ if(a[i] == '1' && b[i] == '1') cout
[BOJ] 10974번 모든 순열 (C++) https://www.acmicpc.net/problem/10974 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net sol 1) next_permutation을 이용 #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; cin >> n; vector v; for(int i = 0; i < n; i++){ v.push_back(i + 1); } do{ for(int i = 0; i < n; i++){ cout
[BOJ] 11659번 구간 합 구하기 4 (C++) https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, m, num, x, y; cin >> n >> m; vector v(n + 1); for(int i = 1; i > num; v[i] = v[i - 1] + num..
[BOJ] 17298번 오큰수 (C++) https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, num; cin >> n; vector v; stack s; vector res; for(int i = 0; i > num; v.push_back(num..
[BOJ] 20126번 교수님의 기말고사 (C++) https://www.acmicpc.net/problem/20126 20126번: 교수님의 기말고사 교수님이 시험을 시작할 수 있는 시각을 출력하여라. 시작 가능한 시각이 여러 개 있으면 그중 가장 앞선 시각을 출력한다. 시험을 치룰 수 없다면 -1을 출력하여라. www.acmicpc.net #include #include #include using namespace std; int main() { int n, m, s, x, y; vector v; cin >> n >> m >> s; for(int i = 0; i > x >> y; v.push_back({x, y}); } sort(v.begin(), v.end()); // 1. 앞쪽에 시간이 비는 경우 if(v[0].firs..
[BOJ] 24523번 내 뒤에 나와 다른 수 (C++) https://www.acmicpc.net/problem/24523 24523번: 내 뒤에 나와 다른 수 첫째 줄에 수열 $A$의 크기 $N$이 주어진다. 둘째 줄에는 $A_1 \ A_2 \ \cdots \ A_N$이 공백으로 구분되어 주어진다. $(1 \le N \le 10^6$, $-10^9 \le A_i \le 10^9 )$ 입력으로 주어지는 모든 수는 정수이다. www.acmicpc.net #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, num; vector v; stack s; vector res; cin >> n; ..
[BOJ] 2493번 탑 (C++) https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; cin >> n; stack s; int num; for (int i = 0; i > num; while (!s.empty()) { if (s.top()...
[BOJ] 15988번 1, 2, 3 더하기 3 (C++) https://www.acmicpc.net/problem/15988 15988번: 1, 2, 3 더하기 3 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net #include using namespace std; int main() { int n, num; long long dp[1000001] = {0, 1, 2, 4}; for(int i = 4; i > n; for(int i = 0; i > num; cout