문제
- 참가자: N
- S, M, L, XL, XXL, XXXL: 사이즈 별 신청자 수(한 명이 한 사이즈만 주문 가능)
- T: 셔츠 한 묶음에 몇 벌 들어가는지
- P: 펜 한 묶음에 몇 자루 들어가는지
설명이 개인적으로 뭔가? 이해가 안 돼서 다시 적었다.
티셔츠와 펜의 묶음 수 T와 P라고 하면 보통 n개짜리 T묶음, m개짜리 P묶음이라고 생각했는데
내가 멍청한 걸지도...
풀이
한 묶음에 T벌씩 총 셔츠 n벌을 구매하려면
1. n÷T묶음을 구매하고
2. n÷T의 나머지에 대해서도 한 묶음을 더 구매해야 한다
(한 묶음에 10벌씩 31벌을 구매한다 치면 총 4묶음을 구매하고 마지막 한 묶음에서 한 벌을 꺼내서 따로 줘야 하니까)
int shirt = 0; //셔츠 묶음 개수
for (int i = 0; i < 6; i++) {
shirt += size[i] / T; //몫만큼
if (size[i] % T != 0) //낱개 있을 때 1묶음 추가
shirt++;
}
펜은 인원수랑 똑같이 구매하면 되니 그냥 인원수/P이다
[JAVA]
BufferedReader로 입력받은 문자열을 StringTokenizer로 토큰화하고, 이 토큰화한 문자열들을 parseInt를 사용해 정수로 바꿔 주었다.
BufferedReader 대신 Scanner를 사용하든, StringTokenizer 대신 split()을 사용하시든 상관없다.
for문 대신 for each문을 사용하여 풀이했다.(위의 for문 그대로 사용해도 무방)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
int N=Integer.parseInt(in.readLine());
StringTokenizer st=new StringTokenizer(in.readLine());
int[] size=new int[6];
for(int i=0; i<6; i++)
size[i]=Integer.parseInt(st.nextToken());
st=new StringTokenizer(in.readLine());
int T=Integer.parseInt(st.nextToken());
int P=Integer.parseInt(st.nextToken());
int shirt=0;
for(int s: size) {
shirt+=s/T;
if(s%T!=0)
shirt++;
}
System.out.println(shirt);
System.out.println(N/P+" "+N%P);
}
}
[C]
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(void) {
int N, T, P;
int size[6];
scanf("%d", &N);
for (int i = 0; i < 6; i++)
scanf("%d", &size[i]);
scanf("%d %d", &T, &P);
int shirt = 0;
for (int i = 0; i < 6; i++) {
shirt += size[i] / T;
if (size[i] % T != 0)
shirt++;
}
printf("%d\n%d %d", shirt, N/P, N%P);
return 0;
}
'백준' 카테고리의 다른 글
백준 11650: 좌표 정렬하기(java) (0) | 2024.07.09 |
---|---|
백준 2798: 블랙잭(java/C) (0) | 2024.07.06 |
백준 11050: 이항 계수 1(java/C) (0) | 2024.07.06 |
백준 2292: 벌집(java/C) (0) | 2024.07.06 |
백준 2775: 부녀회장이 될테야(java/C) (0) | 2024.07.06 |