๐ 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;
}
}
'Algorithm > JAVAํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ 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; } }