관리 메뉴

나만을 위한 블로그

[Algorithm] 프로그래머스 - 피자 나눠 먹기(2) (Kotlin) 본문

알고리즘 문제 풀이/프로그래머스

[Algorithm] 프로그래머스 - 피자 나눠 먹기(2) (Kotlin)

참깨빵위에참깨빵_ 2022. 12. 21. 18:29
728x90
반응형
피자가게는 피자를 6조각으로 잘라 준다. 피자를 나눠먹을 사람의 수 n이 매개변수로
주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자조각을 먹어야 한다면

최소 몇 판을 시켜야 하는지를 리턴하도록 solution()을 완성하라

 

 

처음에는 입출력 예를 보고 6과 10의 최소공배수가 30이고, 30조각은 5판이니까 5가 나온 건가 싶어서 유클리드 호제법으로 최소공배수를 구해서 풀기는 풀었는데, 쓸데없이 복잡하다.

더 단순하게 풀 수 있는 방법을 고민하다가 잘 안 되서 다른 사람의 풀이를 확인했다.

 

https://velog.io/@anna_developer/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4%ED%94%BC%EC%9E%90-%EB%82%98%EB%88%A0-%EB%A8%B9%EA%B8%B02

 

프로그래머스_피자 나눠 먹기(2)

프로그래머스_피자 나눠 먹기(2)

velog.io

fun solution(slice: Int, n: Int): Int {
    var p = 6
    while (p % n != 0) {
        p += 6
    }

    return p / 6
}

 

0으로 나눠 떨어질 때까지 피자를 주문하고 (p += 6) 주문 후 6조각으로 나눠서(p / 6) 구하는 방식이라고 한다.

while을 통해 피자 조각을 입력값만큼 계속 나눠서 나머지가 없을 때까지 반복하고, 나머지가 없으면 whlie을 통과해서 리턴문으로 이동한다.

역시 기존에 풀었던 방식과 다른 방식을 고민하고 코드로 만들어내는 과정이 어렵다. 될 때까지 한다.

반응형
Comments