
-Code
import java.io.*;
import java.util.*;
public class BOJ12981 {
public static void main(String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int rCnt = Integer.parseInt(st.nextToken());
int gCnt = Integer.parseInt(st.nextToken());
int bCnt = Integer.parseInt(st.nextToken());
// 3개의 색 모두 다 넣은 경우
int diffBoxCnt = Math.min(rCnt, Math.min(gCnt, bCnt));
// 위의 수가 빠진 총 갯수
rCnt -= diffBoxCnt;
gCnt -= diffBoxCnt;
bCnt -= diffBoxCnt;
// 3개씩 넣은 박스 총 갯수
int total = diffBoxCnt + rCnt / 3 + gCnt / 3 + bCnt / 3;
// 나머지 계산을 위한 계산
rCnt %= 3;
gCnt %= 3;
bCnt %= 3;
// 나머지 필요한 박스 구하기
int remain = 0;
int sum = rCnt + gCnt + bCnt;
if (sum > 0) {
remain = 1;
}
if (sum >= 3) {
remain = 2;
}
System.out.println(total + remain);
}
}
3개의 수를 1개씩 넣은 경우와 그걸 빼서 계산하여 올림 처리로 처음에 풀었습니다.
문제는 이렇게 되면 각 개수가 섞여서 틀리게 되어서 각각 3개씩 넣는 방식과 나머지를 계산하라는 힌트로 다시 짰지만 나머지 계산에서 문제가 한 번 더 생겼습니다. 나머지 계산에서 각 2개와 1개를 가진 경우 2개 박스로 계산되도록 짜게 되어서 해당 부분을 총개수에 따라 if문을 다시 짜서 해결하게 되었습니다.
'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [프로그래머스/Java] 햄버거 만들기 (0) | 2026.02.10 |
|---|---|
| [백준/Java] 5052번 전화번호 목록 (0) | 2026.02.10 |
| [백준/Java] 2508번 사탕 박사 고창영 (0) | 2026.02.09 |
| [백준/Java] 2816번 디지털 티비 (0) | 2026.02.09 |
| [백준/Java] 7682번 틱택토 (0) | 2026.02.08 |