코테/프로그래머스

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

imname1am 2023. 2. 8. 14:30
반응형

내 코드 (틀림)

import java.util.*;

class Solution {
    public int solution(String my_string) {
    
        ArrayList<String> list = new ArrayList<>(Arrays.asList(my_string.replaceAll(" ", "").split("")));        
        int answer = list.get(0);
        
        for(int i=1 ; i < list.size() ; i++) {
            if(list.get(i).equals("+")) {
            	answer += Integer.parseInt(list.get(i+1));
            }
            else {
            	answer -= Integer.parseInt(list.get(i+1));  
            }
        }
        
        return answer;
    }
}

 ArrayList로 받고 해보려고 했는데..

엥 8.9만 패스함...

힌트를 보니까 두 자리수 이상의 자연수에 대응하는 코드를 작성하지 않아서 그렇다고 함....😵

 

수정한 코드 (맞음)

class Solution {
    public int solution(String my_string) {
        
        String[] strArr = my_string.split(" ");
        int answer = Integer.parseInt(strArr[0]);
        
        for(int i=1 ; i < strArr.length ; i+=2) {
            if(strArr[i].equals("+")) {
                answer += Integer.parseInt(strArr[i+1]);
            }
            else {
                answer -= Integer.parseInt(strArr[i+1]);
            }
        }
        
        return answer;
    }
}

반복문에서 i의 증가값을 i += 2로 해야 했음..

어차피 +,-1,3,5,7, ···인덱스에만 들어가있을 테니까...!

 

편-안

다른 정답 코드

import java.util.Arrays;
class Solution {
    public int solution(String my_string) {

        String[] ans = my_string.trim().split(" ");
        int answer = Integer.parseInt(ans[0]);
        
        for(int i = 1; i < ans.length-1; i++){
            if(ans[i].equals("+")){
                answer +=  Integer.parseInt(ans[i+1]); 
            }else if(ans[i].equals("-")){
                answer -= Integer.parseInt(ans[i+1]);
            }
        }
        return answer;
    }
}

여기는 반복문 범위를 ans.length - 1까지 해줬네...

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


(참고... 집사님 항상 감사합니다..)

 

[프로그래머스] 문자열 계산하기 자바(JAVA)

츄르사려고 코딩하는 코집사입니다. 1. [프로그래머스] 문자열 계산하기 자바(JAVA) 1) 문제 제목 : 문자열 계산하기 2) 문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/120902 프로그래머스 코

yongku.tistory.com

 

반응형