난이도 ⭐️⭐️
문제 설명
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 |
문제 풀이
먼저 투자한 액수가 입력된다. 이때 입력값은 float 값으로 받는데 이는 연산을 위함이다.
두 번째로 투자 일 수가 입력된다. 이 투자 일수는 반복 횟수를 결정한다. 투자 일 수만큼 반복해서 rst(최종 결과 변수)를 최신화한다.
투자일 수만큼 반복하면서 변동폭인 데이터가 입력되며 이때 b의 값은 부호를 붙인 변동폭이므로 백분율을 계산하고 기존의 rst값에 더한 값을 rst로 저장한다.
즉, b가 10이 입력된 경우 10퍼센트 올라간 것이므로 결괏값은 { 기존의 결괏값 + 기존의 결괏값 * 10*(0.01) } 이 되는 것이다.
정답 코드
#include<stdio.h>
int main(){
int a,b,c,d,cnt=0;
float fir,rst=0,out;
scanf("%f",&fir);rst = fir;
scanf("%d",&a);
for(int i=0;i<a;i++){
scanf("%d",&b);
rst = rst + rst * (b*0.01);
// printf(">> %.02f\n",rst);
}printf("%.0f\n",rst - fir); out = rst - fir;
if(out>0)printf("good");
else if(out==0) printf("same");
else printf("bad");
}
'Datastructure > [Code Up]' 카테고리의 다른 글
[Code Up] 1285번 : 계산기 2 (0) | 2023.11.02 |
---|---|
[Code Up] 1284번 : 암호 해독 (0) | 2023.11.02 |
[Code Up] 1282번 : 제곱수 만들기 (1) | 2023.11.02 |
[Code Up] 1226번 : 이번 주 로또 (1) | 2023.11.02 |
[Code Up] 1205번 : 최댓값 (0) | 2023.11.02 |