문자열 계산기

seheeee_97·2023년 11월 8일

회고팀

목록 보기
8/41

my_string은 "3 + 5"처럼 문자열로 된 수식입니다. 문자열 my_string이 매개변수로 주어질 때, 수식을 계산한 값을 return 하는 solution 함수를 완성해주세요.


제한사항

  • 연산자는 +, -만 존재합니다.
  • 문자열의 시작과 끝에는 공백이 없습니다.
  • 0으로 시작하는 숫자는 주어지지 않습니다.
  • 잘못된 수식은 주어지지 않습니다.
  • 5 ≤ my_string의 길이 ≤ 100
  • my_string을 계산한 결과값은 1 이상 100,000 이하입니다.
  • my_string의 중간 계산 값은 -100,000 이상 100,000 이하입니다.
  • 계산에 사용하는 숫자는 1 이상 20,000 이하인 자연수입니다.
  • my_string에는 연산자가 적어도 하나 포함되어 있습니다.
  • return type 은 정수형입니다.
  • my_string의 숫자와 연산자는 공백 하나로 구분되어 있습니다.


class Solution {
    public int solution(String my_string) {
        int answer = 0;
        String[] tokens = my_string.split(" ");

        int operand1 = Integer.parseInt(tokens[0]);
        String operator = tokens[1];
        int operand2 = Integer.parseInt(tokens[2]);

        switch (operator) {
            case "+":
                answer = operand1 + operand2;
                break;
            case "-":
                answer = operand1 - operand2;
                break;
        }
        return answer;
    }
}









class Solution {
    public int solution(String my_string) {
        String[] tokens = my_string.split(" "); // 주어진 문자열을 공백을 기준으로 분리하여 토큰으로 저장
        int answer = 0;		//결과 저장
        int operand = 0;	//피연산자 값 저장
        String operator = "+"; 	//연산자 저장, 초기 연산자를 +로 설정

        for (String token : tokens) {		//토큰 하나씩 처리
            if ("+".equals(token) || "-".equals(token)) {	//토큰이 연산자일 때
                operator = token;
            } else {		//토큰이 숫자일 떄
                int value = Integer.parseInt(token);		//정수형으로 변환
                if ("+".equals(operator)) {	
                    answer += value;	//덧셈 연산	
                } else if ("-".equals(operator)) {
                    answer -= value;	//뺄셈 연산
                }
            }
        }

        return answer;
    }
}

0개의 댓글