Notice
Recent Posts
Recent Comments
Link
250x250
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

거인의 코딩일지

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

알고리즘테스트/Programmers

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

코딩거인 2023. 10. 13. 08:36
728x90

import java.util.*;

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 -1; i++){
            if(arr[i].equals("+")){
                answer += Integer.parseInt(arr[i+1]);
            }else if(arr[i].equals("-")){
                answer -= Integer.parseInt(arr[i+1]);
            }
        }
        return answer;
    }
}

 

  1. 우선 문자열에 공백을 기준으로 나눠줄 수 있기에 split() 함수를 활용하여 공백을 기준으로 배열을 만들어 주었다
  2. 그 후 answer 에 arr의 0번째 번호를 할당하여 주었다.
  3. for 문을 활용하여 그 안에서 + 일 경우와 - 일 경우를 나누어 " + " 일 경우에는 answer 에다가 arr [i+1] 을 더해 주었고 " - "일 경우에는 answer 에다가 arr [i+1] 을 빼 주었다.
  4. 그 다음 answer 을 return 해주었고 결과를 얻었다!!

 


 

다른 사람의 풀이,,,!
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;
    }
}
  • sign 이라는 boolean변수를 만들어 주어 for문을 통해서 숫자일 경우 삼항 연산자를 통해서 더하고 뺴는것을 해주었다...! 이렇게 생각할 수 도 있다는걸 다시 배울 수 있었다...!

 

728x90

'알고리즘테스트 > Programmers' 카테고리의 다른 글

[Lv.0_JAVA] 문자 개수 세기  (0) 2023.10.28
[Lv.1_Java] 햄버거 만들기  (0) 2023.10.26
[Lv.0_Java] 약수 구하기  (0) 2023.10.05
[Lv.0_Java] 한 번만 등장한 문자  (0) 2023.10.05
[Lv.0_Java] 가까운 수  (2) 2023.10.05