30802번. 웰컴 키트 - C++
30802번. 웰컴 키트 - 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
#include <iostream>
using namespace std;
int main() {
const int ARR_SIZE = 6;
int n, t, p;
int size[ARR_SIZE];
scanf("%d", &n);
for (int i = 0; i < ARR_SIZE; i++) {
scanf("%d", &size[i]);
}
scanf("%d %d", &t, &p);
int tt = 0; // 티셔츠 묶음 수
for (int i = 0; i < ARR_SIZE; i++) {
int x = size[i] / t;
int y = size[i] % t;
if (y != 0) {
tt += x + 1; // t의 배수가 아닐 때
} else {
tt += x; // t의 배수일 때
}
}
int pp = n / p; // 펜 묶음 수
int pi = n % p; // 한 묶음 당 펜 자루
printf("%d\n%d %d", tt, pp, pi);
return 0;
}
설명
티셔츠는 남아도 되지만 부족해서는 안 되고 신청한 사이즈대로 나눠주어야 합니다. 펜은 남거나 부족해서는 안 되고 정확히 참가자 수만큼 준비되어야 합니다.
티셔츠 묶음 수는 사이즈를 저장한 배열을 돌면서 계산했다. 만약 XL 사이즈를 9명이 신청했고 한 묶음 당 5장이라면 9 / 5 = 1이므로 일단 1묶음을 주문한다. 그리고 9 % 5 = 4이므로 4장을 더 주문해야 하니 1묶음을 더 추가하여 최종 x는 2가 된다.
펜 묶음 수는 전체 인원 수를 P자루로 나눈 몫을 취하고, 나머지는 낱개로 주문한다.
배운 점
펜을 낱개로 주문해도 된다는 걸 이제야 깨달았다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.