문제
나의 생각
" "띄어쓰기 기준으로 문자열을 문자배열로 변경하고 그 배열을 기준으로 값들을 더하는 for문을 실행.
"Z"가 나오면 앞에서 더해준 값을 다시 빼주는 방식으로 접근.
"Z"가 index 0에서 나오면 에러가 나므로 index가 0 일때는 0을 빼주는 방식으로 추가.
나의 답안
public static int solution(String s) {
int answer = 0;
String[] a = s.split(" ");
for (int i = 0; i < a.length; i++) {
if (a[i].equals("Z")) {
if (i == 0) {
answer += 0;
} else {
answer -= Integer.parseInt(a[i - 1]);
}
} else {
answer += Integer.parseInt(a[i]);
}
}
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;
}
}
'Programmers 문제풀이 > Lv.0' 카테고리의 다른 글
문자열 계산하기 (0) | 2023.03.06 |
---|---|
잘라서 배열로 저장하기 (0) | 2023.03.06 |
영어가 싫어요 (0) | 2023.03.02 |
공 던지기 (0) | 2023.03.02 |
소인수분해 (0) | 2023.03.02 |