머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수
n
이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는solution
함수를 완성해보세요.제한사항
- 1 ≤
n
≤ 100입출력 예
n result 7 1 1 1 15 3
import Foundation
func solution(_ n:Int) -> Int {
var count = 0
if n > 7 {
if n % 7 == 0 {
count = n / 7
} else {
count = n / 7 + 1
}
} else {
count = 1
}
return count
}
처음 문제를 보고 쉽게 해결할 수 있을 것 같아 바로 코드를 작성하고 제출했지만, 결과적으로 가독성이 좋지 않았다. 삼항 연산자를 과도하게 사용하지 않으려는 점도 고려했다.
또한, 처음에 n > 7
조건을 추가했는데, 내부 조건문에서 이미 해당 조건을 처리하고 있었기 때문에 중복된 조건이었다. 이는 코드의 가독성을 떨어뜨리는 원인이 되었다.
import Foundation
func solution(_ n: Int) -> Int {
return (n + 6) / 7
}
n
명이 최소한 한 조각씩 먹기 위해 필요한 피자의 수를 계산해야 한다.(n + 6) / 7
은 n
명이 피자를 먹기 위해 필요한 피자의 수를 계산하는 가장 간결한 방법이다. 이는 n
을 7로 나누었을 때 나머지가 있을 경우 피자 한 판을 더 추가해야 하기 때문이다.피자를 7조각으로 자를 수 있다는 것을 배웠다. 🍕🍕🍕🍕🍕🍕🍕
수식을 간단히 하면 조건문 없이도 해결할 수 있다.
리팩토링을 하려는 생각, 코드의 가독성과 효율성을 높이는 중요한 시작점이 된다.