- 입출력 예
my_string | result |
"3 + 4" | 7 |
- 입출력 예 설명
입출력 예 #1
3 + 4 = 7을 return 합니다.
- 내 풀이
class Solution {
public int solution(String my_string) {
int answer = 0;
String[] check= my_string.split(" ");
if (check[1].equals("+")){
answer = Integer.parseInt(check[0]) + Integer.parseInt(check[2]);
}else if (check[1].equals("-")){
answer = Integer.parseInt(check[0]) - Integer.parseInt(check[2]);
}
return answer;
}
}
위의 풀이로 실행을 하니 성공하였으나 제출하고 채점하기를 하니 8개가 실패가 떴다
뭐가 문제인가 생각하다가 제한사항에 my_string에는 연산자가 적어도 하나 포함되어 있습니다. 라는 문구를 보는 순간 연산자가 더 있을 수 도 있겠구나 라는 생각이 들었다
그래 이러면 너무 쉽지...
class Solution {
public int solution(String my_string) {
int answer = 0;
// 숫자와 연산자는 공백 하나로 구분되어 있기 때문에 구분자로 이용함
String[] check= my_string.split(" ");
// 첫 수를 저장하여 다음 연산자를 체크한다.
answer = Integer.parseInt(check[0]);
for (int i = 1; i < check.length; i += 2) {
if (check[i].equals("+")){
answer += Integer.parseInt(check[i +1]);
}else if (check[i].equals("-")){
answer -= Integer.parseInt(check[i +1]);
}
}
return answer;
}
}
쉽게 통과~
- 다른 사람 풀이
import java.util.Arrays;
class Solution {
public int solution(String myString) {
return Arrays.stream(myString.replaceAll("- ", "-").replaceAll("[+] ", "").trim().split(" ")).mapToInt(Integer::parseInt).sum();
}
}
class Solution {
public int solution(String my_string) {
String[] calculationArray = my_string.split(" ");
int answer = Integer.parseInt(calculationArray[0]);
for(int i = 1; i < calculationArray.length; i++) {
if(calculationArray[i].equals("+")) {
answer += Integer.parseInt(calculationArray[i + 1]);
}
if(calculationArray[i].equals("-")) {
answer -= Integer.parseInt(calculationArray[i + 1]);
}
}
return answer;
}
}
'프로그래머스 > [프로그래머스 - JAVA] Lv.0' 카테고리의 다른 글
[프로그래머스 - JAVA] 삼각형의 완성조건 (2) (0) | 2023.03.15 |
---|---|
[프로그래머스 - JAVA] 구술을 나누는 경우의 수 (0) | 2023.03.14 |
[프로그래머스 - JAVA] 잘라서 배열로 저장하기 (0) | 2023.03.14 |
[프로그래머스 - JAVA] 영어가 싫어요 (0) | 2023.03.13 |
[프로그래머스 - JAVA] 컨트롤 제트 (0) | 2023.03.13 |
댓글