요구능력 : 잘 모르겠다.
코드설명 :
처음에는 5의 배수이면 그냥 5로 나눠버리면 그게 제일 적은 설탕봉지니까 조건을 줫고, N에 0을 준 이유는 아래에서 N이 0이 아니면 정확한 N킬로가 안나오다고 해둿기 때문이다.
while문에 N > 0 를 조건으로 준 이유는 N을 지속적으로 빼고 나눌건데,
만약 정확한 N킬로가 나온다면 N은 0이 될거고 아니라면 N은 - 가 나올것이다.
계속 3으로 빼주고 5로 나눠지는지 확인하기 때문.
가방을 최대한 적게 들어야 된다고 했으므로, N을 3으로 빼다가 N이 5에 나누어 떨어진다면 N이 결국 최소한의 가방이 나온다.
후기 : 처음에 방향을 잘못잡아서 이상한 길에 빠져버리고 오래걸려버린..
var N = Int(readLine()!)!
var result = 0
if N % 5 == 0 {
result = N / 5
N = 0
}else {
while N > 0 {
N -= 3
result += 1
if N % 5 == 0 {
result += N / 5
N = N % 5
break
}
}
}
if N != 0 {
result = -1
}
print("\(result)")
'Algorithm > 문제풀이_백준' 카테고리의 다른 글
Swift) 백준 2581번 (소수) (0) | 2021.08.07 |
---|---|
Swift) 백준 1978번 (소수) (0) | 2021.08.06 |
Swift) 백준 2775번 (부녀회장이 될테야) (0) | 2021.08.06 |
Swift) 백준 10250번 (ACM호텔) (0) | 2021.08.06 |
Swift) 백준 2869번(달팽이는 올라가고 싶다) (0) | 2021.08.06 |
댓글