본문 바로가기

Python(알고리즘,문제풀이)/BOJ (Bronze IV)

백준 4696번 / St. Ives - 파이썬

728x90

📚문제

출처 : 백준 / 4696번 (https://www.acmicpc.net/problem/4696)

 

📝풀이

# 4696 St. Ives
while True:
    n = float(input())
    if n !=0:
        cnt = 0
        if n != 0:
            for i in range(5):
                cnt += (n**i)
        if str(cnt)[-1]=='0':
            print(f'{cnt:.2f}')
        else:
            print(round(cnt,2))
    else:
        break

문제에서 가끔 입력이 float로 주어지고,

소수점 아래 첫 번째 자리까지 밖에 나오지 않는 값을

소수점 아래 두 번째 자리까지 출력해야되는 경우가 있다

(ex 2801.0 => 2801.00)

 

이럴 때 보통 str로 변환 후 '0'을 붙여준 다음에 다시 숫자 형태로 변환해줬다

근데 문자열로 출력되도 상관없는 경우면 모르겠지만

숫자형으로 출력해야할 경우

float( 값 ) 하면 다시 2801.0으로 돌아온다

 

이 때 , f-string을 사용하여 답의 포맷을 .2f (문제에서 요구하는 자릿수까지) 형태로 변경시켜주면 간단하다

728x90