N = int(input())
count = 0
a = N % 5
if a == 0:
count = N/5
elif a % 3 == 0:
count = (N/5) + a/3
else:
for i in range(1, N):
b = (N - (3*i))
if b % 5 == 0 and b >= 0 :
count = i + b/5
break;
else:
count = -1
print(int(count))
1. 5의 배수 먼저 거르고
2. 3의 배수 거르고
3. 위의 둘에서 걸러지지 않았다면 1, N까지 반복하며 N에서 -(3 * i)를 해줌
만약 해준 결과값에서 % 5 (5의 나머지)를 구해서 0이 나오면 count에 i + 5를 해줌
4. 만약 모두 아니면 1 ~ N까지 반복된다는 최악의 경우가 있음
여기까지가 내가 생각한 코드이다.
답은 맞다고 떴으나 내가 만족 하지 못해 다른 풀이를 찾아보았다
다른 사람의 풀이
N = int(input())
a = N // 5
b = N % 5
cnt = 0
while a >= 0:
if b % 3 == 0:
cnt = a +(b // 3)
break
a -= 1
b += 5
if cnt > 0:
print(cnt)
else:
print(-1)