알고리즘 공부/CodeUp 문제풀이

코드업 1283:주식 투자(C)

티들 2023. 9. 19. 23:52

문제설명

gbs라는 개미 투자자가 주식에 투자하려고 합니다.

이 사람이 투자한 돈의 액수와, 그 주식의 하루간의 변동을 퍼센트로 알 때, 이 사람의 순수익과 이득/손해 판단을 출력하세요.

 

입력

첫째줄에 투자한 액수 a가 입력됩니다. (100 <= a <= 10,000)

둘째 줄에 투자 일 수 b가 입력됩니다.(1 <= b <= 10)

그 다음줄에 일별 변동폭인 데이터가 날짜 갯수(b개)만큼 퍼센트 정수로 입력됩니다. (변동폭는 음수도 될 수 있습니다.) ( 범위 -100 ~ +100)

 

출력

이 사람의 순수익(=총 수익(최종 값) - 총 비용(투자한 액수))을 소수점 첫째 자리에서 반올림하여 첫째 줄에 출력한다.

그리고 다음 줄에 이 사람이 이득일 경우 "good", 본전일 경우 "same",  손해일 경우 "bad"를 출력하세요. 

물론, 단위가 '원'인데, 0.4원 손해나 0.4원 이득은 없겠죠? (0.5원이면 반올림해서 1입니다 ^^)

만약 0.5>순수익>-0.5이면 순수익은 0으로 봅니다.

 

입력 예시

10000

4

10 -10 5 -5

 

출력 예시

-125

bad

 

나의 코드

#include <stdio.h>

int main()
{
    float t=0, d=0, c;
    int b, a;
    scanf("%d", &a);	// 투자액수 입력 받음
    t=a;
    scanf("%d", &b);	// 투자 일수 입력 받음
    for(int i=1;i<=b;i++)	// b만큼 반복
    {
        scanf("%f", &c);	// 변동 폭 계산
        d = c/100;
        t+=t*d;
    }
    printf("%.0f\n", -a+t);	// 값 출력
    if(t>a) printf("good");	// 조건에 따라 출력
    else if(t<a) printf("bad");
    else if(t==a) printf("same");
    return 0;
}

 

모범 답안

#include <stdio.h>

int main()
{
    float a,sa,b,y;
	int x;
    scanf("%f %f",&a,&b);

    sa=a;
    for(x=0;x<b;x++)
    {
                    scanf("%f",&y);
                    a*=(100+y)/100;
    }

    if(a-sa>=0.5||a-sa<=-0.5)
    {
                      printf("%.0f\n",a-sa);
                      if(a-sa>0)
                               printf("good");
                      else
                          printf("bad");
    }
    else
    {
        printf("0\n"); 
        printf("same");
    }            
    return 0;
}

 

문제 바로가기 : https://codeup.kr/problem.php?id=1283

'알고리즘 공부 > CodeUp 문제풀이' 카테고리의 다른 글

코드업 2721:순환 문자열  (0) 2023.09.21
코드업 1754:큰 수 비교  (0) 2023.09.20
코드업 1180:만능 휴지통(C)  (0) 2023.09.19
코드업 1677:종이자르기(C)  (2) 2023.09.18
코드업 1382:GuguClass(C)  (0) 2023.09.17