728x90
SMALL

using System;

public class Solution {
    public int solution(string my_string) {
        string[] str = my_string.Split(" "); /// 입출력 예 1에서 {3} {+} {4}로 나뉘어 진다.
        int answer = int.Parse(str[0]); // 맨 처음 숫자를 answer가 갖고 있는다.
        
        for(int i = 0; i < str.Length-2; i++)
        {  
            if(i%2 == 0)
            {
                if(str[i+1].ToString() == "+")
                {
                    answer = answer + int.Parse(str[i+2]);
                }
                else if(str[i+1].ToString() == "-")
                {
                    answer = answer - int.Parse(str[i+2]);
                }
                else
                {
                    break;
                }
            }
        }
        
        return answer;
    }
}

 

// +와 -가 나오는 위치가 아무것도 안 건드리면 2, 6, 10번째 배열 위치에 나오니까 4로 나눈 나머지가 2가 되게 하는 방식도 가능하기는 하지만

// 빈칸을 다 없애버리고 계산하면 빠르게 2와 나눈 나머지로 할 수 있다는 게 장점.

 

파이썬

////

 

solution=eval

 

자바

/////////

 

class Solution {
    public int solution(String my_string) {
        int answer = 0;
        boolean sign = true;
        String[] sarr = my_string.split(" ");
        
        for(int i=0; i<sarr.length; i++)
        {
            if(i%2==0)
            {
                answer += sign? Integer.parseInt(sarr[i]):-Integer.parseInt(sarr[i]);
            }
            else
            {
                sign = sarr[i].equals("+");
            }
        }
        return answer;
    }
}

 

 

 

728x90

설정

트랙백

댓글