문제 & 링크
https://www.acmicpc.net/problem/1350
풀이
1. vector를 사용하여 각 파일의 크기를 저장한다. 이때 각 파일의 크기는 1,000,000,000이고, 최대 50개의 파일이 주어질 수 있으므로, 최대 50,000,000,000의 저장 공간이 필요하다. 따라서 vector의 자료형을 long long으로 설정해야 한다.
2. 클러스터의 크기를 저장한다.
3. 각 파일의 크기를 클러스터의 크기로 나눈다. 이때 나머지가 없을 경우 해당 몫을 count에 더하고, 나머지가 있을 경우 (몫 + 1)을 count에 더한다.
4. 모든 파일에 대해 3의 과정을 반복한 후 클러스터의 크기와 count의 값을 곱해주면 사용한 디스크 공간을 얻을 수 있다.
코드
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<long long> A;
int N;
cin >> N;
for (int i = 0; i < N; i++) {
int fSize;
cin >> fSize;
A.push_back(fSize);
}
int cSize;
cin >> cSize;
long long count = 0;
for (int i = 0; i < N; i++) {
count += A[i] / cSize;
if (A[i] % cSize != 0) count++;
}
cout << cSize * count;
return 0;
}
'Koala - 15기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/python] 15963번 : CASIO (0) | 2024.07.07 |
---|---|
[백준/Python] 17094번: Serious Problem (0) | 2024.07.07 |
[백준/C++] 11365번: !밀비 급일 (0) | 2024.07.07 |
[백준/Python] 9012번: 괄호 (0) | 2024.07.06 |
[백준/Python3] 15917번 : 노솔브 방지문제야!! (0) | 2024.07.05 |