본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1231 : 계산기 1

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1231 : 계산기 1 (자바, JAVA)입니다.

Intro

Question

문제 설명

입력

연산식이 한줄로 입력된다.
연산식의 형식은 정수+정수 또는 정수-정수 또는 정수*정수 또는 정수/정수의 형태이다.

출력

계산 결과를 정수로 출력한다.
나눗셈일 경우 실수로 출력하되 소수 둘째자리까지 출력한다.
(0으로 나누는 경우는 입력되지 않는다.)

예시

  • 입력 : 10+10
  • 출력 : 20

Solution (풀이)

  • 풀이 : 메모리 14264, 시간 105
public class Answer1 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        String str = br.readLine();

        StringTokenizer st;
        // indexOf은 해당 문자가 없는 경우 -1을 반환한다.
        if (str.indexOf('+') != -1) {
            st = new StringTokenizer(str, "+");    // + 기준으로 나누기
            sb.append(Integer.parseInt(st.nextToken()) + Integer.parseInt(st.nextToken()));    // + 연산
        } else if (str.indexOf('-') != -1) {
            st = new StringTokenizer(str, "-");    // - 기준으로 나누기
            sb.append(Integer.parseInt(st.nextToken()) - Integer.parseInt(st.nextToken()));    // - 연산
        } else if (str.indexOf('*') != -1) {
            st = new StringTokenizer(str, "*");    // * 기준으로 나누기
            sb.append(Integer.parseInt(st.nextToken()) * Integer.parseInt(st.nextToken()));    // * 연산
        } else {
            st = new StringTokenizer(str, "/");    // / 기준으로 나누기
            sb.append(String.format("%.2f", Double.parseDouble(st.nextToken()) / Double.parseDouble(st.nextToken())));    // / 연산
        }

        System.out.println(sb);
        br.close();
    }
}

Ranking(순위)

반응형