https://www.acmicpc.net/problem/2839
2839번: 설탕 배달
상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그
www.acmicpc.net
이 문제 또한 특정 패턴이 있다.
먼저 N은 3보다 크거나 같기 때문에 1,2 는 제외하고 보면 4와 7의 경우는 3과 5로 만들 수 없기 때문에 -1로 고정한다.
if(N==4||N==7)
{
System.out.println(-1);
}
그리고 5로 나누어 떨어지는 수는 5로 나눈 값을 출력하고 있다. 따라서 다음 코드와 같다.
else if(N%5==0)
{
System.out.println(N/5);
}
오른쪽 끝에 있는 수는 5로 나누었을 때의 나머지이다.
5로 나누었을 때 나머지가 1, 3이 나오는 수들은 동일한 형태의 수를 출력하면서 증가하고 있다.
5로 나누었을 때 나머지가 2, 4가 나오는 수들 또한 동일한 형태의 수를 출력하면서 증가하고 있다.
나머지가 1, 3 인 수들은 N/5 +1 을 한 값이 출력되고
나머지가 2, 4 인 수들은 N/5 +2 을 한 값이 출력된다.
따라서 코드는 다음과 같다.
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.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.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);
}
}
}
'알고리즘 > 백준 풀이(동적 프로그래밍)' 카테고리의 다른 글
백준 1003번 - 피보나치 함수 (0) | 2024.01.02 |
---|---|
백준 12865번 - 평범한 배낭(미해결) (0) | 2023.12.31 |
백준 2579번 - 계단 오르기 (1) | 2023.12.30 |
백준 9095번 - 1, 2, 3 더하기 (0) | 2023.12.29 |
백준 1463번 - 1로 만들기 (0) | 2023.12.29 |