본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1283 : 주식 투자

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1283 : 주식 투자 (자바, JAVA)입니다.

Intro

Question

문제 설명

입력

첫째줄에 투자한 액수 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

Solution (풀이)

  • 풀이 : 메모리 11192, 시간 69
public class Answer1 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        double money = Integer.parseInt(br.readLine());    //돈 입력
        int days = Integer.parseInt((br.readLine()));    //일수 입력
        String str = br.readLine();
        StringTokenizer st = new StringTokenizer(str, " ");

        double input=money;
        for (int i=0; i<days; i++) { // 입력받은 일 수 만큼 for문 반복
            int percent = Integer.parseInt(st.nextToken()); // st에서 토큰을 차례로 꺼내어 계산
            money = money*(1+percent/100.0);
        }
        // BufferedWriter는 String 타입으로 append해야하기에 캐스팅
        bw.append(String.valueOf(Math.round(money-input)));
        bw.newLine(); // BufferedWriter의 줄 바꾸기

        if (money-input>0) {
            bw.append("good");
        } else if(money-input<0) {
            bw.append("bad");
        } else {
            bw.append("same");
        }

        bw.flush();
        bw.close();
    }
}

Ranking(순위)

반응형