

처음 어려움을 느낀 이유는, '규칙성' 에 대한 고민이었습니다. 최적화된 수가 case by case 아닌가? 하는 고민이었죠.
적은 봉지수를 쓰기 위해서는, 5kg봉지를 최대한 써야합니다. 하지만, 상황에 따라 5kg 봉지를 적게 써야할 때가 있습니다. 가령 11kg짜리 봉지는, 5kg 1개에 3kg 2개를 써야하지, 5kg 2봉지로는 해결할 수 없죠.
제 풀이는 다음과 같습니다.
1. 5kg봉지를 최대한 써봄 (n/5)
2. 남은양이 3kg으로 처리되나? -> 되면 정답출력.
3. 안될 경우, for 구문으로 돌아와서, 5kg봉지 사용수를 하나 줄임.
4. 2를 반복, 안되면 3으로 돌아감.
5. for 구문을 전부 했는데도 정답출력이 안 될 경우, -1을 출력.
이렇게, 5kg 봉지를 최대한 쓰면서 정답을 구할 수 있었습니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int temp = n/5;
int ans = temp;
ans++;
for (int i=0; i<=(n/5); i++) {
temp = n%5 + (5 * i);
ans--;
if (temp%3 == 0) {
ans = ans + temp/3;
System.out.println(ans);
break;
}
}
if (ans == 0) {
System.out.println(-1);
}
}
}'백준 문제풀이 > 기본수학1' 카테고리의 다른 글
| 10757. 큰 수 A+B (자바, Java) (2) | 2022.09.19 |
|---|---|
| 2775. 부녀회장이 될테야 (자바, Java) (0) | 2022.09.18 |
| 10250. ACM 호텔 (자바, Java) (0) | 2022.09.18 |
| 2869. 달팽이는 올라가고 싶다. (자바, Java) (0) | 2022.09.18 |
| 1193. 분수찾기 (자바, Java) (0) | 2022.09.18 |