본문 바로가기
프로그래머스 문제풀어보기

[Lv.0] 문자열 계산하기

by dantriss 2023. 4. 1.


https://school.programmers.co.kr/learn/courses/30/lessons/120902#

 

 

문자열 my_string 안에 숫자와 연산자는 공백 하나로 구분되어 있다고 나와있기 때문에 

String.split(" ")을 활용해 문자열 my_string을 배열로 만든다.

 

0으로 시작하는 수는 주어지지 않고, 잘못된 수식은 주어지지 않기 때문에 문자열 my_string을 이용해 만든 배열 arr에 제일 앞에 있는 건 숫자로 시작할 것이다.

그렇기 때문에 answer에는 배열 arr에 0번째 자리에 있는 값을 선언하였다.

string인 arr[0]을 int인 answer에 넣기 위해선 Integer.parseInt() 를 활용해 형변환을 한 후 넣어주었다.

 

반복문을 활용해 arr의 0번째 자리는 이미 answer가 가지고 있기 때문에 1부터 배열 arr의 길이만큼 반복한다.

그리고 숫자와 숫자사이에는 연산자가 존재하기에 i를 1씩 증가시키는것이 아니라 2씩 증가시켜서 해당 자리에 어떠한 연산자가 있는지 확인한다.

arr[i]가 + 인경우 answer에 형변환을 한 후 값을 증가시킨다.

arr[i]가 - 인경우 answer에 형변환을 한 후 값을 감소시킨다.

 

class Solution {
    public int solution(String my_string) {
        
        
        String[] arr = my_string.split(" ");        
        
        int answer = Integer.parseInt(arr[0]);
        
        for(int i=1; i<arr.length; i+=2){

            if(arr[i].equals("+")){
                
                answer += Integer.parseInt(arr[i+1]);
                
            }else if(arr[i].equals("-")){
                
                answer -= Integer.parseInt(arr[i+1]);
                
            }
            
        }
        return answer;
    }
}

'프로그래머스 문제풀어보기' 카테고리의 다른 글

[Lv.0] 옹알이(1)  (0) 2023.04.04
[Lv.0] 다음에 올 숫자  (0) 2023.04.04
[Lv.0] 숨어있는 숫자의 덧셈 (2)  (0) 2023.03.23
[Lv.0] 컨트롤 제트  (0) 2023.03.22
[Lv.0] 영어가 싫어요  (0) 2023.03.22

댓글