99클럽 코테 스터디 4기 14일차 TIL - 백준: 거스름돈(14916) Swift & Python

레일리·4일 전
0
post-thumbnail

ℹ️ 문제 정보

플랫폼번호제목유형난이도언어
백준14916거스름돈그리디실버5Swift, Python

🚀 나의 접근 방법

동전의 개수가 최소가 되도록 거슬러 주어야 하기 때문에 가능한 큰돈(5원)으로 많이 거슬러 줘야 한다. 즉, 그리디 알고리즘을 사용하면 된다.

입력된 금액(n)에서 5로 나누어떨어질 때까지 2를 빼면 된다. n에서 2를 계속 뺐는데도 불구하고 0이나 5의 배수가 되지 못했으면(n이 0보다 작아진 경우) 거슬러 줄 수 없는 것으로 -1일 출력하면 된다.

그전에 만약 n이 5의 배수라면 결과는 5로 나눈 값이다.

✍️ 나의 코드

Swift

var n = Int(readLine()!)!
var result = 0

if n%5 == 0 {
    result = n/5
} else {
    while n > 0 {
        n -= 2
        result += 1
        if n % 5 == 0  {
            result += n/5
            break
        }
    }
}

if n < 0 {
    result = -1
}

print(result)

Python

n = int(input())
result = 0

if n%5 == 0:
    result = n//5
else:
    while n > 0:
        n -= 2
        result += 1
        if n%5 == 0:
            result += n//5
            break

if n < 0:
    result = -1

print(result)

🤔

profile
나야, 개발자
post-custom-banner

0개의 댓글