반응형
내 코드 (틀림)
import java.util.*;
class Solution {
public int solution(String my_string) {
int answer = 0;
// 알파벳 먼저 띄어쓰기로 replaceAll하고 앞뒤 공백 제거
my_string = my_string.replaceAll("[^0-9]", " ").replaceAll(" ", " ").trim();
System.out.print(my_string);
ArrayList<String> list = new ArrayList<>(Arrays.asList(my_string.split(" ")));
for(String i : list) {
int j = Integer.parseInt(i);
if((0 <= j) && (j <= 1000)) answer += j;
}
return answer;
}
}
설마설마했는데 실패...ㅎ
공백 문자에 대한 처리를 제대로 못 해줬기 때문에 실패한 것 같았다.
그래서 두 칸을 차지하는 공백을 replaceAll하는 것도 빼주고...
그래서 다시 풀어봄..
내 코드 (정답)
import java.util.*;
class Solution {
public int solution(String my_string) {
int answer = 0;
my_string = my_string.replaceAll("[^0-9]", " ").trim();
ArrayList<String> list = new ArrayList<>(Arrays.asList(my_string.split(" ")));
for(String i : list) {
if(i.equals("")) {
continue;
}
else {
answer += Integer.parseInt(i.trim());
}
}
return answer;
}
}
공백에 대한 처리도 해주고,
숫자 양 옆에 있는 공백도 생각해서 trim() 해주고 그랬더니 통과했다ㅠ..
다른 코드
class Solution {
public int solution(String my_string) {
int answer = 0;
String[] str = my_string.replaceAll("[a-zA-Z]", " ").split(" ");
for(String s : str) {
if(!s.equals("")) answer += Integer.valueOf(s);
}
return answer;
}
}
이리 간단하게 푸실 수가....🤦♀️
Integer.valueOf()
대신 Integer.parseInt()
써도 된다.
(참고)
- 문자열 공백 제거
- 문제 힌트
- Integer.valueOf()
VS Integer.parseInt()
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 0] 캐릭터의 좌표 (0) | 2023.02.11 |
---|---|
[프로그래머스/Lv. 0] 다음에 올 숫자 (0) | 2023.02.09 |
[프로그래머스/Lv. 0] 한 번만 등장한 문자 (0) | 2023.02.09 |
[프로그래머스/Lv. 0] 최댓값 만들기 (2) (0) | 2023.02.09 |
[프로그래머스/Lv. 0] 문자열 계산하기 (0) | 2023.02.08 |