문제
풀이
class Solution {
public int solution(String my_string) {
String[] formula = my_string.split(" ");
int num1 = Integer.parseInt(formula[0]);
int num2 = Integer.parseInt(formula[2]);
int answer = num1;
for(int i = 1; i < formula.length; i++) {
if(formula[i].equals("+")) {
answer += Integer.parseInt(formula[i + 1]);
} else if(formula[i].equals("-")) {
answer -= Integer.parseInt(formula[i + 1]);
} else {
continue;
}
}
return answer;
}
}
import java.util.Arrays;
class Solution {
public int solution(String my_string) {
// 1st replcaeAll(): 음수로 치환
// 2nd replaceAll(): + 찾는 regex, 양수로 치환
// 예시) 3 - 1 + 2 ➡️ 3 -1 +2
// split(" "): [3,-1,+2]
// 연산을 제대로 치환하지 않으면(replaceAll(" ", "")), NumberFormatException 발생
return Arrays.stream(
my_string.replaceAll("- ", "-").replaceAll("[+] ", "").trim().split(" "))
.mapToInt(Integer::parseInt)
.sum();
}
}
Integer.parseInt() & Integer.valueOf()
- parseInt()는 int 값을 반환하고, valueOf()는 Integer 객체를 반환
- parseInt()는 주로 기본 데이터 타입인 int를 다룰 때 사용되며, valueOf()는 Integer 객체를 다룰 때 사용
- parseInt()는 주로 문자열을 숫자로 변환할 때 사용되며, valueOf()는 객체를 다룰 때 편리함
출처
https://school.programmers.co.kr/learn/courses/30/lessons/120902
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] Lv.0 / PCCE / 1번 / 출력 / Java (0) | 2024.06.18 |
---|---|
[Programmers] Lv.0 / 가장 큰 수 찾기 / Java (0) | 2024.06.17 |
[Programmers] Lv.0 / 배열의 유사도 / Java (0) | 2024.06.15 |
[Programmers] Lv.0 / 숫자 찾기 / Java (0) | 2024.06.15 |
[Programmers] Lv.0 / n의 배수 고르기 / Java (0) | 2024.06.11 |
댓글