본문 바로가기

iOS 앱 개발자 프로젝트/알고리즘 코드카타

[Algorithm] 피자 나눠먹기 #3 (w/ Swift & Python)

#1에서는 1판에 7조각을, #2에서는 6조각으로 피자를 잘라주었던 머쓱이네 피자가게..

이제 두 조각에서 열 조각까지 원하는 조각 수로 잘라 준다고 하는데..

 

 

 

피자 나눠먹기

문제 설명

머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요

 

제한사항
  • 2 ≤ slice ≤ 10
  • 1 ≤ n ≤ 100

 

  • solution.swift
import Foundation

func solution(_ slice:Int, _ n:Int) -> Int {
    return ((n - 1) / slice) + 1 
}

 

※ 피자조각(슬라이스)의 값이 피자를 먹는사람(n)보다 크거나 같으면, 결과는 항상 1이 되는데 이는 슬라이스로 나누는 연산을 하면 몫이 항상 0 이상이기 때문이다. 나의 경우 먼저 파이썬을 통해 간단히 연산해서 테스트를 실행하고 ((n - 1) / slice) + 1  공식을 swift 에 그대로 가져와서 간단하게 코딩을 완성했다. 파이썬의 ceil 함수와 같은 더 간단한 수식을 swift에서 찾을 수 있으면 좋겠다. 

 

  • solution.python
def solution(slice, n):
    return ((n - 1) // slice) + 1

 

import math 

def solution(slice, n):
    return math.ceil(n/slice)

 

※ ceil 함수는 소수점 이하를 올림하여 정수로 반환하는 함수로, math 모듈에 있는 이 함수를 사용하면 n을 슬라이스로 나눈 값을 올림할 수 있다.