
정수 N이 주어졌을 때 이를 3과 5라는 숫자로 분해할 수 있는 최소 개수를 구하는 문제이다.
N을 계속해서 줄여나가며 이를 5로 먼저 분해해보는 반복문을 짜면 된다. 이때 N은 5와 3 중 숫자가 적은 3씩 줄여나가야 한다.
"0을 어떤 정수와 나눈 나머지는 항상 0이다."
위 정보가 코드를 짜는 데 한 몫 한다.
import java.util.*;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int cnt = 0;
while(N >= 0){ // N이 0 이하가 될 때까지 반복.음수면 반복문이 종료된다.
if(N % 5 == 0){ // 먼저 N이 5로 깔끔하게 나눠지는지 체크
cnt += N/5;
System.out.println(cnt);
return; // 프로그램을 즉시 종료
}
N -= 3; // 5로 나눠지지 않으면 N-3
cnt++; // 3이 한번 분해되었음을 의미
}
System.out.println("-1"); // 만약 끝까지 나눠지지 않으면 -1 출력
}
}
맞았습니다!!