728x90
반응형

23322번: 초콜릿 뺏어 먹기
문제
https://www.acmicpc.net/problem/23322
23322번: 초콜릿 뺏어 먹기
연두는 $N$개의 통에 초콜릿을 담아서, 초콜릿의 개수가 오름차순이 되도록 일렬로 배열해 놓는다. 즉, ($1$번째 통의 초콜릿의 개수) $\le$ ($2$번째 통의 초콜릿의 개수) $\le \dots \le$ ($N$번째 통의
www.acmicpc.net
풀이
이 문제에서 예제를 보면, 모든 통의 초콜릿 개수가 초콜릿 수가 가장 적은 통과 같도록 만든다.
입력받는 값 중 K는 사실상 필요없는 값이고, 입력받은 배열을 오름차순으로 정렬하면 0번 index의 값이 최솟값이 된다.
1번부터 N-1번 index까지 값을 순회하며 0번 index의 값(최솟값)보다 큰 경우에만 조건문에 진입한다.
조건문에 진입한 경우, 먹을 수 있는 초콜릿 수의 최댓값을 (현재 index의 값) - (0번 index의 값)만큼 증가시키고 날짜를 1 증가시킨다.
즉, 가장 작은 수보다 큰 수의 개수가 날짜, (큰 숫자 - 가장 작은 수)의 합이 초콜릿의 수다.
코드
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n, k, a = 0, b = 0;
cin >> n >> k;
vector<int> v(n);
for (int i = 0; i < n; i++)
cin >> v[i];
sort(v.begin(), v.end());
for (int i = 1; i < n; i++)
if (v[i] > v[0]) {
a += v[i] - v[0];
b++;
}
cout << a << ' ' << b;
return 0;
}
728x90
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
[백준 / BOJ] C++ 17430 가로등 (4) | 2023.08.12 |
---|---|
[백준 / BOJ] C++ 27965 N결수 (0) | 2023.08.12 |
[백준 / BOJ] C++ 17291 새끼치기 (8) | 2023.06.01 |
[백준 / BOJ] C++ 18186 라면 사기 (Large) (2) | 2023.05.17 |
[백준 / BOJ] C++ 18185 라면 사기 (Small) (6) | 2023.05.16 |