728x90
https://www.acmicpc.net/problem/2839
● 문제
처음에는 짜기 쉬워보이지만 꽤나 만만치 않은 문제이다.
그러나 수학적개념만 잘 생각한다면 쉽게 구현할 수 있다.
● 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int n = s.nextInt();
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);
}
}
● 참고사항
위의 그림은 구현할 때 썼던 내용이다. 빨간 네모의 경우에는 3의배수이거나 5의배수이고 각 배수는 각 배수일 때 가장 작은 값을 가진다.
그리고 세번째 줄에 적혀있는 숫자는 5로 나누었을때의 나머지를 나타낸 것이다. 이를 보면 나머지는 1, 2, 3, 4중에서 나온다는것을 알 수 있는데 각 갯수를 확인해보면 나머지가 1, 3이 나왔을 때에는 5로 나눈 몫의 +1개만큼의 설탕이 추가되고 2, 4가 나왔을 경우에는 5로 나눈 몫의 +2만큼의 설탕이 추가된다는 것을 알 수 있다.
이러한 규칙만 파악한다면 쉽게 구현할 수 있다.
728x90
'Study > BaekJoon' 카테고리의 다른 글
[백준 자바JAVA] 13301번 - 타일 장식 (0) | 2024.07.10 |
---|---|
[백준 자바JAVA] 9625번 - BABBA (0) | 2024.07.09 |
[백준 자바JAVA] 2720번 - 세탁소 사장 동혁 (2) | 2023.05.26 |
[백준 자바JAVA] 2231번 - 분해합 (0) | 2023.03.04 |
[백준 자바JAVA] 10250번 - ACM호텔 (0) | 2023.03.04 |