https://www.acmicpc.net/problem/2839
1. 정답 코드
n = int(input())
cnt = 0
while n >= 0:
if n % 5 == 0: #5로 나누어 떨어질경우
cnt += (n//5)
print(cnt)
break
n -= 3 #5로 나누어 떨어지지 않으면 3을 반복해서 빼준다
cnt += 1
else: #5와 3 둘 다 나누어 떨어지지 않을 경우 -1 출력
print(-1)
한 시간 정도 고민을 하다가 도저히,, 안되겠어서,, 구글링
이 문제는 greedy 알고리즘을 이용하는 문제이다.
5의 횟수가 많으면 많을 수록 좋으나, 3의 배수가 더해져 있을 때를 고려해야한다.
아으 어려워ㅠ
'🔅코딩테스트 공부🔅 > ❗백준' 카테고리의 다른 글
[백준] 10610번 30(with python) (0) | 2023.01.27 |
---|---|
[백준] 2875번 대회or인턴(with python) (0) | 2023.01.27 |
[백준] 1920번 수 찾기(with python) (1) | 2023.01.26 |
[백준] 25501번 재귀의 귀재(with python) (0) | 2023.01.25 |
[백준] 18870번 좌표 압축(with python) (0) | 2023.01.25 |
댓글