๋ฌธ์ ์ค๋ช
์ซ์๋ค์ด ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋๋ค. ๋ฌธ์์ด์ ์๋ ์ซ์๋ฅผ ์ฐจ๋ก๋๋ก ๋ํ๋ ค๊ณ ํฉ๋๋ค. ์ด ๋ “Z”๊ฐ ๋์ค๋ฉด ๋ฐ๋ก ์ ์ ๋ํ๋ ์ซ์๋ฅผ ๋บ๋ค๋ ๋ป์ ๋๋ค. ์ซ์์ “Z”๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ง ๋, ๋จธ์ฑ์ด๊ฐ ๊ตฌํ ๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์.
- 0 < s์ ๊ธธ์ด < 1,000
- -1,000 < s์ ์์ ์ค ์ซ์ < 1,000
- s๋ ์ซ์, "Z", ๊ณต๋ฐฑ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- s์ ์๋ ์ซ์์ "Z"๋ ์๋ก ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ฉ๋๋ค.
- ์ฐ์๋ ๊ณต๋ฐฑ์ ์ฃผ์ด์ง์ง ์์ต๋๋ค.
- 0์ ์ ์ธํ๊ณ ๋ 0์ผ๋ก ์์ํ๋ ์ซ์๋ ์์ต๋๋ค.
- s์ ์์๊ณผ ๋์๋ ๊ณต๋ฐฑ์ด ์์ต๋๋ค.
- ๋ชจ๋ ์ซ์๋ฅผ ์ง์ฐ๋ ๊ฒฝ์ฐ๋ ์ฃผ์ด์ง์ง ์์ต๋๋ค.
- ์ง์ธ ์ซ์๊ฐ ์๋ ์ํ์์ "Z"๋ ๋ฌด์ํฉ๋๋ค.
์ ์ถ๋ ฅ ์sresult
"1 2 Z 3" | 4 |
"10 20 30 40" | 100 |
"10 Z 20 Z 1" | 1 |
๋ฌธ์์ดs์ ์ฒ์๊ณผ ๋์ ๊ณต๋ฐฑ์ด ์๋๋ split()์ ์ด์ฉํ์ฌ ๋ฐฐ์ด์ ๋ด๋๊ฑด ๋ง์๋๋ฐ,
๋จ์ํ๊ฒ Z๋ฉด ๋นผ์ฃผ๊ณ , ์๋๋ฉด ๋ํ๋ ๋ฐฉ์์ ์จ๋ฒ๋ฆฌ๋ Z๊ฐ ์ฐ์์ผ๋ ์ ์์ ์ผ๋ก ๋์๊ฐ์ง๊ฐ ์์
ํ ์คํธ์ผ์ด์ค 2๋ฒ 7๋ฒ๋ง ์ค๋ต์ด์๋ค. ( ์์ธ ์ผ์ด์ค : 1 2 3 Z Z / ๊ฒฐ๊ณผ : 1 )
Z๊ฐ ์ฐ์์ผ๋ ์ด๋ป๊ฒ ํ์ง ํ๋ค๊ฐ ๊ทธ๋ฅ Stack ์ด์ฉํด์ ํ์๋๋ ์ฝ๊ฒ ํ๋ ธ๋ค.
import java.util.Stack;
public class Solution {
public int solution(String s) {
int answer = 0;
String[] arr=s.split(" "); // ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ๋ฐฐ์ด์ ์ ์ฅ
Stack<Integer> stack=new Stack<>();
for(int i=0; i<arr.length; i++) {
if (!arr[i].equals("Z")) { // "Z"๊ฐ ์๋๋ฉด
stack.push(Integer.parseInt(arr[i]));
} else { // "Z"์ด๋ฉด์
if(!stack.isEmpty()) // stack์ด ๋น๊ณต๊ฐ์ด ์๋๋ pop()
stack.pop();
}
}
for(int i=0; i<stack.size(); i++){
answer+=stack.get(i);
}
return answer;
}
'๐ ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค & ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SWEA][JAVA]D3 : 100๋ง ์ดํ์ ๋ชจ๋ ์์ (0) | 2022.11.05 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค][JAVA]Level 1 : ํธ๋ ํ์ดํฐ ๋ํ (0) | 2022.11.05 |
[SWEA][JAVA]D3 : ๊ณ์ฐ๊ธฐ (0) | 2022.11.04 |
[SWEA][JAVA]D3 : [S/W ๋ฌธ์ ํด๊ฒฐ ๊ธฐ๋ณธ] 3์ผ์ฐจ - String (0) | 2022.11.04 |
[ํ๋ก๊ทธ๋๋จธ์ค][JAVA]Level 1 : ์ซ์ ์ง๊ถ (0) | 2022.11.04 |