import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int x = N/3;
int y = N/5;
if(!check(N, x, y))
System.out.println(-1);
}
public static boolean check(int N, int x, int y){
int ans=N;
for(int i=0; i<=x; i++){
for(int j=0; j<=y; j++){
if(3*i+5*j == N){
ans = Math.min(ans, i+j);
}
}
}
if(ans!=N) {
System.out.println(ans);
return true;
}
else return false;
}
}
[문제 풀이 생각 과정]
1. 입력받는 숫자가 5000이하로 작으므로 모든 경우를 찾는 방법으로 생각했다.
2. 예) 숫자 11일때
① 5*2 < 11 < 5*3 ② 3*3 < 11 < 3*4 로 나타낼 수 있다.
5는 0~2, 3은 0~3까지를 모두 확인하면서 11을 만든다. << check()함수의 for문 내용
'1d-1c > BOJ' 카테고리의 다른 글
2869_달팽이는 올라가고 싶다 (JAVA) (0) | 2020.10.18 |
---|---|
1193_분수 찾기 (JAVA) (0) | 2020.10.18 |
1712_손익분기점 (JAVA) (0) | 2020.10.04 |
2798_블랙잭 (JAVA) (0) | 2020.10.03 |
11729_하노이 탑 이동 순서 (JAVA) (0) | 2020.10.02 |