[프로그래머스] Java 코딩테스트 - 피자 나눠먹기(1)

yihyun·2025년 3월 25일

코딩테스트

목록 보기
24/105
post-thumbnail

피자 나눠먹기(1)

✅ 문제 설명

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

✅ 제한사항

1 ≤ n ≤ 100

🔽 소스코드 1 (나눗셈 올림)

💻 풀이

  • int로 n / 7 을 할 경우 소수점이 버려져 잘못된 수가 나오기 때문에
  • 소수점이 나올 경우 다음 몫으로 넘기기 위해 6을 더해준다.
  • 어떤 수를 7로 나눌 경우 0~6이 나머지로 나오기 때문에 n에 6을 더해준다.

시간 0.01ms ~ 0.02ms

    public int solution(int n){

        int piz = (n + 6) / 7; 

        return piz;
    }

🔽 소스코드 1-1 (Math.ceil 사용)

💻 풀이

  • Math.ceil() 은 double 로 반환하기 때문에 (int) 로 형변환 하여 반환해준다.
    시간이 더 오래 걸린 것을 볼 수 있다.

시간 0.20ms ~ 0.29ms

    public int solution1_1(int n){

        int piz = (int) Math.ceil(n / 7.0);

        return piz;
    }

🔽 소스코드 2 (나머지 연산 + 삼항 연산)

💻 풀이

  • 나머지 연산자를 사용해서 n을 7로 나눈 나머지가 0인지를 체크하고,
  • 0일 경우 n / 7 = 1 로 진행되고,
  • 0이 아닐 경우 n / 7 에 1을 더해준다.

시간 0.01ms ~ 0.02ms

    public int solution2(int n){

        int piz = (n % 7 == 0) ? (n / 7) : (n / 7) + 1;

        return piz;
    }
profile
개발자가 되어보자

0개의 댓글