본문 바로가기

프로그래머스(Java)/Level 0

[프로그래머스] 문자열 계산하기

728x90

문제 힌트

  1. split 사용하기
    • 주어진 문자열을 공백(" ")을 기준으로 나누어 배열에 저장합니다.
    • 예: "5 + 7 + 2 - 1 - 5" → ["5", "+", "7", "+", "2", "-", "1", "-", "5"]
  2. i % 2 == 0 일 때 피연산자 처리
    • 배열의 인덱스가 짝수인 경우, 피연산자를 의미합니다.
    • 이때, 연산자에 따라 피연산자 값을 누적합니다.
    • 예: "5 + 7 + 2 - 1 - 5"에서 5, 7, 2, 1, 5가 피연산자입니다.
  3. i % 2 != 0 일 때 연산자 처리
    • 배열의 인덱스가 홀수인 경우, 연산자를 의미합니다.
    • "+" 연산자는 다음 피연산자를 더하고, "-" 연산자는 다음 피연산자를 빼도록 설정합니다.
    • 예: "5 + 7 + 2 - 1 - 5"에서 +, +, -, -가 연산자입니다.

 


정답은 더보기 클릭

더보기
class Solution {
    public int solution(String my_string) {
        // 문자열을 공백을 기준으로 분리하여 배열로 저장
        String[] strArr = my_string.split(" ");
        // 첫 번째 숫자를 초기 결과값으로 설정
        int result = Integer.parseInt(strArr[0]);
        
        // 연산자에 따라 연산할 값을 저장할 변수
        int operand = 0;
        for (int i = 1; i < strArr.length; i++) {
            // 피연산자 처리
            if (i % 2 == 0) {
                // 연산자에 따라 피연산자를 곱하고 결과에 더함
                operand *= Integer.parseInt(strArr[i]);
                result += operand;
            }
            // 연산자가 "+"인 경우
            else if (strArr[i].equals("+")){
                operand = 1; // 양수로 설정
            }
            // 연산자가 "-"인 경우
            else {
                operand = -1; // 음수로 설정
            }
        }
        return result;
    }
}

 

728x90