2022년 04월 10일 일요일 - 한강 오랜만!


오늘 올려볼 문제는 682번 Baseball Game 이라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

leetcode 문제 사진 leetcode 문제 사진

오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.

오늘 문제는 너무 쉽다구


입력


사진에서도 볼 수 있듯이 String 배열 1개가 입력으로 들어온다.



풀이 및 코드


숫자가 들어오면 저장, D가 들어오면 바로 직전의 숫자의 2배를 해서 저장, +가 들어오면 직전에 저장되어있는 숫자 2개를 더하여 저장, C가 들어오면 직전의 숫자를 삭제하고 이러한 과정을 모두 거친후 저장되어있는 수의 합을 구하는 문제이다.


오늘은 처음부터 정답을 생각해냈다.

Stack에 숫자를 저장하고 규칙에 따라서 진행하고 마지막에 수를 다 더하는 방식으로 문제를 풀었다.


이제 코드를 봐보자!


풀이코드

class Solution {
    public int calPoints(String[] ops) {
        Stack<Integer> s = new Stack<>();

        for(String op : ops)
        {
            if(op.equals("C"))
            {
                s.pop();
            }
            else if(op.equals("D"))
            {
                s.push(s.peek() * 2);
            }
            else if(op.equals("+"))
            {
                int temp = s.pop();
                int last = s.peek() + temp;

                s.push(temp);
                s.push(last);
            }
            else
            {
                s.push(Integer.parseInt(op));
            }
        }

        int result = 0;
        while(!s.isEmpty()) result += s.pop();

        return result;
    }
}




제출 화면

leetcode 문제 맞았습니다


오늘 문제는 너무 쉬웠다.

내일 문제는 적당히 어려우면서 재밌는 문제였으면 좋겠다.


내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.

+ Recent posts