n = int(input())
k = n % 5 ## 5로 나눈다음 나머지
l = n // 5 ## 5로 나눈 몫
t = 0 ## 3의 개수
while l >= 0:
if k % 3 == 0:
t = k // 3
k = k % 3
break
k += 5
l -= 1
if k == 0:
print(l + t)
else:
print(-1)
1. 5의 배수로 나눔
2. 나머지가 3으로 나뉘는 지 확인
2-1) 나뉠때 ==> t 에 3의 갯수 저장, k 갱신
2-2) 나뉘지 않을 때 ==> 나머지에 5를 더하고 몫에서 -1을 한다
3. 반복
4. 결과
4-1)만약 k가 0이 아니면 3으로 나뉘지 않았으므로 -1 출력
4-2) k가 0이면 3으로 나뉘었으니 l + t 출력
더 자세히 설명한 블로그
'알고리즘' 카테고리의 다른 글
<백준> 4949번 파이썬 알고리즘 (0) | 2021.07.10 |
---|---|
<백준> 2869번 파이썬 알고리즘 (0) | 2021.07.09 |
<백준> 2805번 파이썬 알고리즘 (0) | 2021.07.09 |
<백준> 2292번 파이썬 알고리즘 (0) | 2021.07.08 |
<백준> 2775번 파이썬 알고리즘 (0) | 2021.07.08 |