Deep_Dev
article thumbnail

๋ฌธ์ œ ์„ค๋ช…

์ˆซ์ž๋“ค์ด ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋œ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด์— ์žˆ๋Š” ์ˆซ์ž๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ๋”ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ “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;
    }