🚀 풀이 후기
StringTokenizer 까먹어서 다시 공부했습니다..
BufferedReader에서 띄어쓰기로 구분된 값을 각 변수 혹은 배열에 저장하기 위해서는 StringTokenizer를 사용해야 합니다.
하지만, 저장할 배열의 자료형이 String이거나 Character라면 더 간단한 방법을 사용할 수 있습니다.
char charInput[] = br.readLine().toCharArray();
String stringInput[] = br.readLine().split(" ");
🌒 문제 설명
🌓 문제 풀이
티셔츠는 남아도 되지만 부족해서는 안되므로 (사이즈를 선택한 사람 수 / 티셔츠 묶음 수)를 했을 때 나머지가 있다면 한 묶음 더 주문해야 합니다.
펜은 정확히 참가자 수만큼 준비되어야 하므로 (전체 인원수 / 펜 묶음 수) 만큼 펜 묶음을 주문해야 하고, 나머지 값만큼 낱개로 주문하면 됩니다.
import java.util.*;
import java.io.*;
public class Main {
private static int N, T, P; // N: 참가자 수, T: 티셔츠 묶음, P: 펜 묶음
private static int[] sizes; // 선택한 티셔츠 사이즈 값을 저장할 배열. index오름차순으로 S, M, L, XL, XXL, XXXL
private static int minBundleOfT; // output. 최소 티셔츠 묶음 수
private static int maxBundleOfP, remainP; // output. 최대 펜 묶음 수, 낱개로 주문하는 펜 수
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
N = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine());
sizes = new int[6];
for(int i=0;i<6;i++){
sizes[i] = Integer.parseInt(st.nextToken());
}
st = new StringTokenizer(br.readLine());
T = Integer.parseInt(st.nextToken());
P = Integer.parseInt(st.nextToken());
// 티셔츠 답을 계산합니다.
calculateT();
// 펜 답을 계산합니다.
calculateP();
StringBuilder sb = new StringBuilder();
sb.append(minBundleOfT);
sb.append("\n");
sb.append(maxBundleOfP).append(" ").append(remainP);
System.out.println(sb);
}
static void calculateT(){
for(int i=0;i<6;i++){
int num = sizes[i];
if(num==0){ // 해당 사이즈를 아무도 안골랐다면 continue합니다.
continue;
}
minBundleOfT += num / T; // (사이즈를 선택한 사람 수 / 티셔츠 묶음)을 계산합니다.
if(num%T>0){ // 나머지가 0보다 크다면 티셔츠는 한 묶음 더 주문해야 하므로 ++합니다.
minBundleOfT++;
}
}
}
static void calculateP(){
maxBundleOfP = N / P; // (전체 인원 수 / 펜 묶음)을 계산합니다.
remainP = N % P; // 펜은 나머지 값만큼 더 주문해야 합니다.
}
}
N = 티셔츠 사이즈 개수 = 6
- 시간복잡도: O(N)
- 공간복잡도: O(N)
반응형
'Coding > algorithm' 카테고리의 다른 글
Java, LeetCode | 1136. Parallel Courses (1) | 2024.09.07 |
---|---|
Java, LeetCode | 418. Sentence Screen Fitting (0) | 2024.09.05 |
Java, LeetCode | 366. Find Leaves of Binary Tree (0) | 2024.08.03 |
Java, BaekJoon | 25083. 새싹 (1) | 2024.07.23 |
Java, LeetCode | 35. Search Insert Position (0) | 2024.07.23 |