소스 코드

T = int(input())

for tc in range(1,1+T):

    # N, P_D, P_G
    n,d,g = map(int,input().split())

    # 만들어질 수 있는 3가지 경우
    # P_G가 0%가 될 수 없는 경우
    if d != 0 and g == 0:
        print('#{} {}'.format(tc,'Broken'))
    
    # P_G가 100%가 될 수 없는 경우
    elif d != 100 and g == 100:
        print('#{} {}'.format(tc,'Broken'))
    
    # 그 외 경우
    else:
        check = 0
        for q in range(1,n+1):
            
            # q*d/100이 정수가 되는 순간 종료
            if (q*d/100) == (q*d//100):
                check = 1
                break
        if check == 1:
            print('#{} {}'.format(tc,'Possible'))
        else:
            print('#{} {}'.format(tc,'Broken'))

 


해결 방법

1. G값은 임의의 값 == P_G에 맞춰서 G를 설정할 수 있다 == G값은 신경쓰지 않아도 된다

 

2. P_G를 설정할 수 없는 경우 제외하기

1) P_D가 0%가 아니면서 P_G가 0%인 경우

2) P_D가 100%가 아니면서 P_G가 100%인 경우

 

3. 그 외의 경우, 'D * P_D == 정수'가 성립하는 경우가 존재하면 'Possible' 


느낀 점

 

 

ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.

 

오류적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.

 

혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.