관리 메뉴

솜씨좋은장씨

[BaekJoon] 25756번 : 방어율 무시 계산하기 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 25756번 : 방어율 무시 계산하기 (Python)

솜씨좋은장씨 2022. 12. 3. 12:26
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 방어율 무시 계산하기 입니다.

 

25756번: 방어율 무시 계산하기

메이플스토리에는 방어율 무시라는 수치가 있다. 특정 보스를 잡기 위해서는 특정 방어율 무시 수치가 되어야 데미지가 정확히 들어가는 시스템으로 이루어져 있다. 물약 아이템을 사용하여 방

www.acmicpc.net

👨🏻‍💻 문제 풀이

메이플스토리의 방어율 무시 수치를 구하는 문제입니다.

방어율 무시 수치 계산은 1 - ( 1 - 방어율 무시 수치 ) * ( 1 - 방어율 무시 수치 ) ~~~ 와 같이 계산합니다.

물약의 방어율 무시 값 리스트를 받았을 때

각 물약을 마시면서 증가된 방어율 무시 수치를 출력하면 됩니다.

만약 물약의 방어율 무시 값이 20 인 물약이 5개 있을때

각 물약을 먹었을때 증가되는 방어율 무시 수치는

첫번째 물약 -> 1 - ( 1 -0.20 )

두번째 물약 -> 1 - ( 1 -0.20 ) * ( 1 -0.20 )

세번째 물약 -> 1 - ( 1 -0.20 ) * ( 1 -0.20 ) * ( 1 -0.20 )

네번째 물약 -> 1 - ( 1 -0.20 ) * ( 1 -0.20 ) * ( 1 -0.20 ) * ( 1 -0.20 )

다섯번째 물약 -> 1 - ( 1 -0.20 ) * ( 1 -0.20 ) * ( 1 -0.20 ) * ( 1 -0.20 ) * ( 1 -0.20 )

입니다.

 

이를 절대/상대 오차 10^-6 범위 내에 차이가 나도록 하기 위하여

round( 값 , 6 ) 으로 최소 소수점 1번째 자리~ 최대 소수점 7번째 자리에서 반올림 하도록 하였습니다.

👨🏻‍💻 코드 ( Solution )

def calculate_defend_ignore_rate(N, potion_list):
    answer_list = []
    
    defend_ignore_rate = 1
    
    for potion in potion_list:
        defend_ignore_rate *= (1 - potion / 100) 
        
        calculated_rate = (1 - defend_ignore_rate) * 100
        
        answer_list.append(round(calculated_rate, 6))
        
    return answer_list


def print_answer(answer):
    for ans in answer:
        print(ans)

    
if __name__ == "__main__":
    N = int(input())
    potion_list = list(map(int, input().split()))
    
    answer = calculate_defend_ignore_rate(N=N, potion_list=potion_list)
    
    print_answer(answer=answer)
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments