[Python] 코딩 도장 - 주식투자

Updated:

코딩 도장 사이트의 문제를 직접 풀어본 내용을 정리하여 올립니다.

코딩 도장에서 여러 문제를 확인할 수 있습니다.

난이도 순으로 차근차근 풀어보려 합니다.


[문제: 주식투자] - Lv.2

요약

초기 투자액과 투자 기간, 그리고 투자 기간 중 날짜별 가치 변동율이 주어질 때 순이익과 이익 여부를 구합니다.

입력

첫째 줄에 투자액이 정수로 주어집니다. 두번째 줄에 투자기간이 정수로 주어집니다.

세번째 줄에 투자기간 중 일별 전일 대비 가치 변동이 각각 퍼센트 단위의 정수로 주어집니다.

  • 투자액은 100 이상 10000 이하의 정수입니다.

  • 투자 기간은 1 이상 10 이하의 정수입니다.

  • 일별 변동폭은 -100 이상 100 이하의 정수로 주어집니다.

출력

첫째 줄에 순이익을 소수점 첫째자리에서 반올림한 값으로 나타냅니다.

두번째 줄에 이익인지 손해인지 여부를 good, same, bad로 나타냅니다.

이익이면 good, 손해이면 bad, 첫째줄에서 출력한 순이익이 0이면 same울 출력합니다.

입력 예시

10000
4
10 -10 5 -5

출력 예시

-125
bad

출처: https://codingdojang.com/scode/476?answer_mode=hide


[풀이]

def invest():
    first_invest = int(input("100이상 10000이하의 정수를 입력하세요."))
    invest_time = int(input("1이상 10이하의 정수를 입력하세요."))
    change = [int(i) for i in input("-100이상 100이하의 정수를 입력하세요.").split()]
    result = first_invest

    for i in range(invest_time):
        result = result + result*change[i]/100
        
    final = round(result) - first_invest
    if final > 0:
        print(final)
        print("good")
    elif final == 0:
        print(final)
        print("same")
    else:
        print(final)
        print("bad")
        
invest()
100이상 10000이하의 정수를 입력하세요.10000
1이상 10이하의 정수를 입력하세요.4
-100이상 100이하의 정수를 입력하세요.10 -10 5 -5
-125
bad

일별 변동폭을 고려한 최종 금액을 구하는 공식을 적어두었다.

정수 조건에 대한 예외 처리 등은 사용하지 않았다.

[추천 풀이]

이 문제 자체가 사실 Lv에 비해 쉬운 것 같고 풀이 역시 대부분 비슷하다.

특별히 색다른 방식은 없어서 추천 풀이는 생략하였다.

Leave a comment