[TIL][프로그래머스/Swift] 피자 나눠 먹기 (1)

Eden·2024년 11월 19일
2

TIL

목록 보기
46/92
post-thumbnail

문제 설명

머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.

제한사항

  • 1 ≤ n ≤ 100

입출력 예

nresult
71
11
153

제출한 코드

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
}

풀이 과정

  • 피자 한 판은 7조각으로 구성되므로, n명이 최소한 한 조각씩 먹기 위해 필요한 피자의 수를 계산해야 한다.
  • (n + 6) / 7n명이 피자를 먹기 위해 필요한 피자의 수를 계산하는 가장 간결한 방법이다. 이는 n을 7로 나누었을 때 나머지가 있을 경우 피자 한 판을 더 추가해야 하기 때문이다.

배운 점

피자를 7조각으로 자를 수 있다는 것을 배웠다. 🍕🍕🍕🍕🍕🍕🍕
수식을 간단히 하면 조건문 없이도 해결할 수 있다.
리팩토링을 하려는 생각, 코드의 가독성과 효율성을 높이는 중요한 시작점이 된다.

profile
Frontend🌐 and iOS

0개의 댓글