제출 코드
-
1차 풀이 (1/30, 혼자 풀이)
- 아이디어 구상 40~1시간
- 알고리즘 생각하는 시간이 좀 걸렸지만 코드짜는건 30분만에 끝남
- 수정 2번정도 후에 완료
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
package bronze; import java.util.Scanner; public class B2839_sugar { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); int min = 5000; int re = 0; for(int five=num/5; five>=0; five--) { if(five == 0) { re = num; } re = num - 5*five; if(re%3==0 && five+re/3<min) { min = five + re/3; } } if(min == 5000) { System.out.println(-1); }else { System.out.println(min); } } }
-
2차 풀이 (2/15, 실습하며 풀이)
- 처음엔 몇번 수정과정 있었던거 같은데, 이번엔 생각하고 짜는데 약 20분 소요
- 같은 문제를 풀었는데 시간 좀 지났다고 다른 방식으로 풀어낸 게 신기했다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
package bronze; import java.util.Scanner; public class B2839_sugar2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); boolean isDiv = false; // 제대로 나눠지는지 검사 for(int i=N/5; i>=0; i--) { if((N-5*i)%3 == 0) { System.out.println(i+(N-5*i)/3); isDiv = true; break; } } if(!isDiv) System.out.println(-1); } }