[JAVA/프로그래머스] LV.0 문자열 계산하기

윤소영·2023년 6월 6일
0

JAVA

목록 보기
17/41

문제

답안 코드

class Solution {
    public int solution(String my_string) {
        
        String[] arr = my_string.split(" ");
        int answer = Integer.parseInt(arr[0]);
        /*for(int i = 0; i < arr.length; i++){
            if(0 <= Integer.parseInt(arr[i]) && Integer.parseInt(arr[i]) <= 20000){
                arr[i] = Integer.parseInt(arr[i]);
            }
        }*/ 
        for(int i = 0; i < arr.length - 1; i++){
            if(arr[i].equals("+")){
                answer += Integer.parseInt(arr[i+1]);
                System.out.println(answer);
            }
            else if(arr[i].equals("-")){
                answer -= Integer.parseInt(arr[i+1]);
                System.out.println(answer);
            }
            /*else if(0 <= Integer.parseInt(arr[i]) && Integer.parseInt(arr[i]) <= 20000){
                answer += Integer.parseInt(arr[i]);
                System.out.println(answer);
            }*/
        }
        return answer;
    }
}

코드 풀이

일부러 고민의 흔적까지 같이 넣었다.
원래는 +,-가 아닌 숫자이면 짜피 20000이하의 숫자만 계산한다 했으니까 범위안에 들어가는 숫자는 string을 int로 바꿔주려했다.
근데 이게 문제가 두자리수 이상은 만약 11이면 11로 한번 인식을 하고 또 1로 한번 더 인식 하는 것이였다!
그래서 수정한 완성본.

0개의 댓글