씬디의 블로그

[프로그래머스] 피자 나눠 먹기 (1) 120814 Swift 본문

Algorithm/Programmers

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

cyndi 2023. 12. 1. 23:46

문제: https://school.programmers.co.kr/learn/courses/30/lessons/120814

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다.

피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.

 

처음엔 피자가 남았을 경우 +1을 더해주는 코드를 생각했다

func solution120814(_ n:Int) -> Int {
    
    var result = 0
    
    if n % 7 > 0 {
        result = n / 7 + 1
    } else {
        result = n / 7
    }
    return result
}

두번째 풀었을 때는 삼항연산자를 적용해서

나머지가 없을 경우는 0, 있을 경우는 1를 더해주는 코드를 작성했다

func solution120814(_ n:Int) -> Int {
    
    var remainPizza = n % 7 == 0 ? 0 : 1
    return n / 7 + remainPizza
}

세번째 풀었을 때는 코드가 훨씬 간결해졌다

나머지가 있을 경우, 반올림이 아닌 그냥 올림! 을 해줄 수 있는 ceil 이라는 친구를 알게 되었다

func solution120814(_ n:Int) -> Int {
    return Int(ceil(Double(n) / Double(7)))
}

 

2023.12.01 - [Swift] - [Swift] 소수점 다루는 친구들(ceil, round, floor, trunc)

 

[Swift] 소수점 다루는 친구들(ceil, round, floor, trunc)

Swift [올림 ceil] 알고리즘 문제를 풀다가 나머지가 있을 경우, 반올림이 아닌 아예 올림을 해버리는 친구가 필요했다 그래서 알게 된 ceil 소수점이 0보다 큰 경우 무조건 올린다 예시 ceil(5.123) // 6.

cyndi0330.tistory.com