본문 바로가기
백준

백준 30802: 웰컴 키트(java/C)

by unhyepnhj 2024. 7. 6.

문제

  • 참가자: 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