📑 1. 문제설명

💡 2. 풀이과정
1. 문자열을 공백을 기준으로 나눠 배열 str에 저장한다.
2. 최종 결과 값을 저장할 sum 변수 선언
3. 마지막으로 추가된 숫자를 저장할 lastNumber 변수 선언
4. 배열을 순회하면서
- 4-1. "Z"가 나오면 lastNumber를 sum에서 뺀다.
- 4-2. 숫자가 나오면 lastNumber에 저장하고 sum에 더한다.
5. 최종 sum을 반환한다.
👨💻 3. 정답코드
class Solution {
public int solution(String s) {
String[] tokens = s.split(" ");
int sum = 0;
int lastNumber = 0;
for (String token : tokens) {
if (token.equals("Z")) {
sum -= lastNumber;
} else {
lastNumber = Integer.parseInt(token);
sum += lastNumber;
}
}
return sum;
}
}
👏🏻 4. 좋아요 가장 많이 받은 코드
스택으로 푼 코드
만약 들어온 문자가 Z이면 스택에서 맨 위에 있는 요소를 꺼내기
Z가 아니라면 요소를 숫자로 변환해 스택에 추가하는 방법으로 해결가능
숫자의 합은 스택을 순회하면서 요소를 모두 더하면 된다.
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;
}
}'코딩테스트 > JAVA테스트' 카테고리의 다른 글
| [프로그래머스] (Java) 중복된 문자 제거 문제풀이 (2) | 2025.03.31 |
|---|---|
| [프로그래머스] (Java) 배열 원소의 길이 문제풀이 (8) | 2025.03.30 |
| [프로그래머스] (Java) 소인수분해 문제풀이 (SET) (5) | 2025.03.28 |
| [프로그래머스] (Java) 숨어있는 숫자의 덧셈 (1) 문제풀이 (1) | 2025.03.27 |
| [프로그래머스] (Java) 문자열 정렬하기 (1) 문제풀이 (1) | 2025.03.27 |