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

문제

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

 

 풀이 

class Solution {
    fun solution(n: Int): Int {
        // 오답 1
        // return (n/7)+1
        
        // 오답 2
        //var quotient:Int = n/7
        //return if(quotient == 1) 1 else quotient+1
        
        if(n < 7){
            return 1
        } else if (n%7 == 0){
            return n/7
        } else{
            return (n/7)+1
        }
    }
}

 

 다른 사람 풀이 

import kotlin.math.ceil

class Solution {
  // 간단하게 올림 함수사용
    fun solution(n: Int) = ceil(n / 7.0)
}

 

 

처음 문제를 봤을 때에는 솔직히 깔끔하게 금방 한줄로 하겠네 하는 근거없는 자신감을 가지고 도전했다가 바로 틀렸다.

크게 복잡한 설명이 필요한 문제는 아니지만 설명을 해보자면..

 

문제를 봤을 때 고려해야 하는 경우의 수는 총 3가지 이다. 피자는 한판당 7조각이고, 1인 1조각을 확보해야 하기 때문에

 

1. n이 7보다 작은 경우

2. n이 7의 배수인 경우

3. n이 7보다 큰 경우

 

이 3가지 상황을 고려 해야한다.

그런데 오답1 과 오답2 에서는 n의 7의 배수인 경우는 고려하지 못했다.

 

이런 문제가 실전으로 나오지도 않겠지만, 나온다면 난 바로,,, ㅜㅜ

그래도 하나하나 문제를 풀어보면서 재미를 느끼는 것 같다.