백준 문제풀이

백준 문제풀이/실버3

백준 11659번 - 구간 합 구하기 4

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..

백준 문제풀이/골드5

백준 1461번 - 도서관

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 ..

백준 문제풀이/실버1

백준 1821번 - 수들의 합 6 (조합 next_permutation)

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

백준 문제풀이/실버2

백준 2004번 - 조합 0의 개수

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..

백준 문제풀이/실버3

백준 1213번 - 팰린드롬 만들기

https://www.acmicpc.net/problem/1213

백준 문제풀이/실버2

백준 1874번 - 스택 수열

https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net #include #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 cnt = 1; vector v; for (in..

백준 문제풀이/실버5

백준 10867번 - 중복 빼고 정렬하기

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..

void_melody
'백준 문제풀이' 카테고리의 글 목록 (2 Page)