이 문제는.... 은근히 머리 굴려야 했다.
쉽게 보다가 test case 여러개 안해봤으면 틀릴뻔~~!!!!
내가 푼 방법은 몫과 나머지의 상관관계를 생각하면서 풀었다!
가장 효율적으로 가야하니까 5로 나누고 몫을 하나씩 줄이면서 나머지 값을 3으로 나눈 나머지가 0이면 값이 존재한다고 가정했다.
코드
package BeakJoon;
import java.util.Scanner;
public class Beak2839 { // 설탕 배달
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
if(N >= 5) {
int i = N / 5; // 몫
for(int k = i; k >= 0; k--) {
int j = N - (5 * k); // 나머지
if(j % 3 == 0) {
System.out.println(k + j/3);
break;}
else if(j == N)
System.out.println("-1");
}
}
else
{
if(N % 3 == 0)
System.out.println(N/3);
else
System.out.println("-1");
}
scan.close();
}
}
여기서 중요한점!!
N >= 5일 때 else문에 System.out.println("-1"); 을 넣으면 틀린다!
왜냐하면 그러면 for문이 돌아갈 때마다 -1이 출력된다..... 그래서 나머지값 = N값이 되었을 때 -1을 출력하도록 했다.
머리를 써서 치매 예방해야지!
1일 1문제 하고싶은데 생각보다 쉽지 않다ㅠㅠ 화이팅!!
'알고리즘 > 백준' 카테고리의 다른 글
[BaekJoon] 백준 1978번 _소수찾기 for Java (0) | 2021.09.25 |
---|---|
[BaekJoon] 백준 1011번 _Fly me to the Alpha Centauri for JAVA (0) | 2021.09.24 |
[BeakJoon] 백준 10757번_ 큰 수 A+B for Java (0) | 2021.09.21 |
[BaekJoon] 백준 2775번_부녀회장이 될테야 for Java (0) | 2021.09.13 |
[BaekJoon] 백준 10250번_ACM 호텔 forJava (0) | 2021.09.06 |