/images/logo.png

[백준]2042 구간 합 구하기

https://www.acmicpc.net/problem/2042 풀이: https://www.acmicpc.net/blog/view/9 참고 크기가 2 ^ (log2(n) + 1) 인 트리를 하나 만든다. N개의 값을 트리에 모두 저장한다. a 가 1 이라면, b번째 값을 c로 수정한다. a 가 2 라면, 2 ~ 5 까지의 모든 수의 합을 출력한다. 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #include <iostream>#include <vector>#include <math.

[백준]2217 로프

https://www.acmicpc.net/problem/2217 풀이: a[i] : i 무게를 들 수 있는 로프의 갯수 로프의 중량보다 가벼운 물체는 들 수 있으므로 중량보다 낮은 값은 전부 +1 씩 해준다. a[i] * i 의 값이 가장 높은 값을 출력한다. i 무게를 들 수 있는 로프의 갯수가 a[i] 개 일 때, a[i] 개의 로프를 이용하여 중량이 a[i] * i 인 물체를 들 수 있기 때문에) 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 11 12 #include <iostream>using namespace std; int n, m, i, s = 0, a[10002]; int main() { cin >> n; while (n--) { cin >> m; while (m) a[m--]++; } for (i = 1; i < 10001; i++) s = s < i * a[i] ?

[백준]2357 최솟값과 최댓값

https://www.acmicpc.net/problem/2357 풀이: [백준]2042 구간 합 구하기 참고 cin, cout 은 시간초과가 나므로 주의 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #include <iostream>#include <vector>#include <math.h>using namespace std; #define ll long long ll n, m, a, b; vector<ll> T, Y; void update(int node, int idx, ll val, int x, int y) { if (idx < x || idx > y) return; T[node] = T[node] > val ?

[백준]10807 개수 세기

https://www.acmicpc.net/problem/10807 풀이: 입력으로 주어진 N개의 정수 중에 v가 몇 개인지 출력한다. 코드: 사용언어 : c 1 2 3 4 5 6 7 8 9 10 n,m,a[202]; main(){ scanf("%d",&n); while(n--){ scanf("%d",&m); a[m+100]++; } scanf("%d",&n); printf("%d\n",a[n+100]); }

[백준]11576 Base Conversion

https://www.acmicpc.net/problem/11576 풀이: A진법으로 나타낸 수를 10진법으로 바꾼 후 바꾼 10진법 수를 다시 B진법으로 바꿔 출력한다. 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <iostream>#include <vector>using namespace std; int a, b, m, n, s; vector<int> v; int main() { cin >> a >> b >> m; while (m--) { cin >> n; s = s * a + n; } while (s) v.

[백준]2506 점수 계산

https://www.acmicpc.net/problem/2506 풀이: 연속으로 맞춘다면 추가 점수가 있게 하여 총점을 출력한다. 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 11 12 #include <iostream>using namespace std; int n, s, c = 0, a; int main() { cin >> n; while (n--) { cin >> a; if (a) s += a + c, c++; else c = 0; } cout << s << endl; }