반응형
내 코드 (틀림)
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
까지 해줬네...
(참고... 집사님 항상 감사합니다..)
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 0] 한 번만 등장한 문자 (0) | 2023.02.09 |
---|---|
[프로그래머스/Lv. 0] 최댓값 만들기 (2) (0) | 2023.02.09 |
[프로그래머스/Lv. 0] 잘라서 배열로 저장하기 (0) | 2023.02.08 |
[프로그래머스/Lv. 0] 치킨 쿠폰 (0) | 2023.02.08 |
[프로그래머스/Lv. 0] 인덱스 바꾸기 (0) | 2023.02.08 |