파이썬 알고리즘 : 코코넛 그 두 번째 이야기

브루트포스

2024년 4월 30일 알고리즘 문제풀이

문제

난이도

실버 5

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import sys

def check(num: int):
    cnt = 1
    for i in range(2,num):
        tmp = num
        for _ in range(i):
            tmp -= 1
            tmp *= (i-1)
            if not tmp%i:
                tmp //= i
            else:
                break
        else:
            cnt = i
    return cnt
                

while True:
    n = int(sys.stdin.readline())
    if n == -1:
        break
    
    tmp = check(n)
    if tmp < 2:
        print(f"{n} coconuts, no solution")
    else:
        print(f"{n} coconuts, {tmp} people and 1 monkey")


문제에서 처리하는 순서대로 그대로 구현했다. 약간 헷갈렸던건, 예시에선 5명이였는데 인원수대로 처리하면 된다는 걸 생각못하고 무조건 5명이라 생각했다..