

생각보다 까다로웠던 문제.
붙어있는 숫자는 '하나의숫자' 로 간주된다. 따라서, 숫자가 나오면 스택에 넣어두고,
숫자가 아닌 알파벳이 나오면 스택에서 차례로 뱉어주면서 각 자릿수로 만들어 더해주면 된다.
class Solution {
public int solution(String my_string) {
int answer = 0;
int l = my_string.length();
Stack<Integer> stack = new Stack<>();
for (int i=0; i<l; i++) {
char ch = my_string.charAt(i);
if (ch>='0' && ch<='9') {
stack.add(Character.digit(ch, 10));
} else {
answer += assemble(stack);
}
}
if (!stack.isEmpty()) {
answer+=assemble(stack);
}
return answer;
}
public int assemble(Stack<Integer> stack) {
int answer=0;
int size = stack.size();
for (int i=0; i<size; i++) {
answer += Math.pow(10, i) * stack.pop();
}
return answer;
}
}'프로그래머스 문제풀이 > Level 0' 카테고리의 다른 글
| 평행 (자바, Java) (0) | 2022.12.13 |
|---|---|
| 다항식 더하기 (자바, Java) (0) | 2022.12.11 |
| 잘라서 배열로 저장하기 (자바, Java) (0) | 2022.12.11 |
| OX퀴즈 (자바, Java) (0) | 2022.12.05 |
| 이진수 더하기 (자바, Java) (0) | 2022.12.02 |