코딩테스트 풀이/JAVA
[프로그래머스/Lv.0] 숨어있는 숫자의 덧셈 (2)
무지맘
2022. 11. 9. 21:08
1. Input
1) 문자열 my_string
2. Output
1) my_string안의 자연수들의 합
2) 문자열에 자연수가 없는 경우 0을 반환
3. Constraint
1) 1 ≤ my_string의 길이 ≤ 1,000
2) 1 ≤ my_string 안의 자연수 ≤ 1000
3) my_string은 소문자, 대문자, 자연수로만 구성되어있다.
4) 연속된 수는 하나의 숫자로 간주한다.
5) 0을 제외하고 0으로 시작되는 수는 없다.
4. Example
Input: my_string="1a2b3c4d123Z" -> Output: 133
설명: 숫자는 1, 2, 3, 4, 123이므로 1+2+3+4+123=133
5. Code
1) 첫 코드(2022/11/02)
my_string = my_string.replaceAll("[a-zA-Z]"," ").trim();
String[] n = my_string.split(" ");
int answer = 0;
for(int i=0 ; i<n.length ; i++)
if(!n[i].equals(""))
answer += Integer.valueOf(n[i]);
return answer;
- replaceAll에 “[^0-9]”를 한 상태로 실행시키면 n[i]==“”일때 에러 발생
2) 1)의 문제를 해결한 다른 사람의 풀이(2022/11/02)
import java.util.StringTokenizer;
// main()
int answer = 0;
String s = my_string.replaceAll("[^0-9]", " ");
StringTokenizer st = new StringTokenizer(s, " ");
while (st.hasMoreTokens()) {
answer += Integer.parseInt(st.nextToken());
}
return answer;