지극히 개인적인 개발블로그
백준 알고리즘 2839: 설탕 배달 본문
쉽지 않은 문제였다.
3가지 경우로 나누고 접근했다.
(1)5로만 나누어 지는 경우 ex)10, 20
(2)3으로만 나누어 지는 경우 ex)6, 9
(3)5와 3으로 나눌수 있는 경우 ex)11, 18
if문으로 분기를 나누어 판별할텐데 18은 3으로 먼저 나누어 버린다면 오답이 되므로 3으로 나누는 분기는 가장 마지막에 위치한다.
import java.util.Scanner;
public class Sol_2839 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if(n%5 == 0)
{
System.out.println(n/5);
return;
}
else{
int a = n/5;
for(int i=a; i>0; i--)
{
int temp = n - (i*5);
if(temp%3==0)
{
System.out.println(i+(temp/3));
return;
}
}
}
if(n%3 == 0){
System.out.println(n/3);
}
else
System.out.println(-1);;
}
}