728x90
반응형
백준
https://www.acmicpc.net/problem/2839
2839번: 설탕 배달
상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그
www.acmicpc.net
- 오늘의 학습 키워드 : 패턴 분석
- 공부한 내용 본인의 언어로 정리하기
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()); if (N == 4 || N == 7) { System.out.println(-1); } else if (N % 5 == 0) { System.out.println(N / 5); } else if (N % 5 == 1 || N % 5 == 3) { System.out.println((N / 5) + 1); } else if (N % 5 == 2 || N % 5 == 4) { System.out.println((N / 5) + 2); } } }
- 오늘의 회고
- 문제를 보고 풀이를 짜봤지만 예제의 예상 답안을 맞추지 못함...
그리디 알고리즘으로 풀려고 했는데 예제 하나씩 계속 틀려서 난관을 겪었다.
문제 풀이도 중요하지만 어느정도의 수학적인 지식과 패턴 찾기도 필요하다고 느꼈다.
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[] basket = {5, 3}; int total = 0, tmp = N; for (int i=0; i<basket.length; i++) { total += (tmp / basket[i]); tmp %= basket[i]; // 나누어 떨어지는 경우가 있는지 재확인 // N이 5의 배수거나 3의 배수인 경우 if (tmp != 0 && N % basket[i] == 0) { total = N / basket[i]; tmp = 0; break; } } if (tmp == 0) System.out.println(total); else System.out.println(-1); } }
- 문제를 보고 풀이를 짜봤지만 예제의 예상 답안을 맞추지 못함...
99클럽 1기를 수강하면서 작성한 글입니다.
99클럽-1기 모집 중
현직 개발자와 함께하는 코테 스터디
99club.oopy.io
728x90
반응형
'Blog > Education' 카테고리의 다른 글
99클럽 코테 스터디 6일차 TIL + Stack (0) | 2024.03.30 |
---|---|
99클럽 코테 스터디 5일차 TIL + Stack (0) | 2024.03.29 |
99클럽 코테 스터디 3일차 TIL + 람다식 (0) | 2024.03.27 |
99클럽 코테 스터디 2일차 TIL + Map put/get swap (0) | 2024.03.26 |
99클럽 코테 스터디 1일차 TIL + Map, getOrDefault 메서드 (0) | 2024.03.25 |
댓글