class Solution {
public int solution(String s) {
int answer = 0;
String[] arr = s.split(" ");
for(int i=0; i<arr.length-1; i++) {
if(arr[i+1].equals("Z")) {
i++;
continue;
}
else answer += Integer.parseInt(arr[i]);
}
if(!arr[arr.length-1].equals("Z")) answer += Integer.parseInt(arr[arr.length-1]);
return answer;
}
}
내 코드가 그렇게 나쁜것같진않지만, 코딩할때마다 내가 사용하는 것들이 한정적이라는 생각이 많이 들기때문에, 다른 풀이를 익히려고한다.
stack 자료구조를 이용한 풀이가있다.
웹 뒤로가기, 역순문자열, 실행취소.. 같은 것에 선입후출의 스택을 활용할 수 있다.
import java.util.*;
class Solution {
public int solution(String s) {
int answer = 0;
Stack<Integer> stack = new Stack<>();
for (String w : s.split(" ")) {
if (w.equals("Z")) {
stack.pop();
} else {
stack.push(Integer.parseInt(w));
}
}
for (int i : stack) {
answer += i;
}
return answer;
}
}