https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 처음에는 이렇게 풀었다. 그냥 흔히 떠올릴만한 풀이이다. #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); long n, m; cin >> n >> m; long input; vector v(n); for (i..
https://www.acmicpc.net/problem/1461 1461번: 도서관 세준이는 도서관에서 일한다. 도서관의 개방시간이 끝나서 세준이는 사람들이 마구 놓은 책을 다시 가져다 놓아야 한다. 세준이는 현재 0에 있고, 사람들이 마구 놓은 책도 전부 0에 있다. 각 책 www.acmicpc.net #include using namespace std; int main() { int n, m; int sum = 0; cin >> n >> m; int zero_index = 0; vector arr(n); for (int i = 0; i > arr[i]; } sort(arr.begin(), arr.end()); for (int i = 0; i < n; i++) { if ..
https://www.acmicpc.net/problem/1821 1821번: 수들의 합 6 첫째 줄에 두개의 정수 N(1 ≤ N ≤ 10)과 F가 주어진다. N은 가장 윗줄에 있는 숫자의 개수를 의미하며 F는 가장 밑에 줄에 있는 수로 1,000,000 이하인 자연수이다. www.acmicpc.net #include using namespace std; int main() { int n, f; cin >> n >> f; vector v; for (int i = 1; i
https://www.acmicpc.net/problem/2004 2004번: 조합 0의 개수 첫째 줄에 정수 $n$, $m$ ($0 \le m \le n \le 2,000,000,000$, $n \ne 0$)이 들어온다. www.acmicpc.net 조합의 공식이 n! / m! * (n-m)! 이다. 여기서 끝자리 0이라는 이야기는 10이 곱해졌다는 소리이고 10을 만드는 것은 2와 5이다. 그렇기에 2와 5의 갯수를 통해 10의 갯수를 유추할 수 있다. 물론 10이 되려면 2와 5가 둘 다 필요하니 이 둘 중 최소 갯수를 출력해주면 된다. m과 n의 범위가 크기에 long long으로 처리했다. 추가적으로 예를 들어 25의 경우 5가 두 개나 된다. 그렇기에 단순히 if(%5 == 0) 해서 five..
https://www.acmicpc.net/problem/10867 10867번: 중복 빼고 정렬하기 첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. www.acmicpc.net 풀이를 무려 3가지나 떠올렸다!!! 1번 풀이) 중복을 허용하지 않으면서, 오름차순으로 자동정렬하는 stl은 set이 있다. 그래서 set을 활용해봤다. #include #include #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); set s; int n; c..