메모리 가 73 퍼 나왔다...

이유를 유추 해본다...

for 문 안에 조건문 에서 계속 char peekedItem 변수를 생성해서 메모리가 필요이상으로 들어간거 같다...

for 문 밖에 그냥 empty 로 하나 구현 해놓고 그 주소 로 값 만 변경 했으면 메모리 도 더 좋게 나올수 있었을꺼같다...


* 수정 코드

import java.util.*;

class Solution {
    public boolean isValid(String s) {
        Stack<Characterstack = new Stack<Character>();
        int length = s.length();
        for (int i = 0; i < length; i++) {
            char ch = s.charAt(i);
            if (ch == '(' || ch =='[' || ch == '{') {
                stack.push(ch);
            } else if (ch == ')' && stack.isEmpty() == false) {
                char peekedItem = stack.peek();
                if (peekedItem != '(') {
                    return false;
                }
                stack.pop();
            } else if (ch == ']' && stack.isEmpty() == false) {
                char peekedItem = stack.peek();
                if (peekedItem != '[') {
                    return false;
                }
                stack.pop();
            } else if (ch == '}' && stack.isEmpty() == false) {
                char peekedItem = stack.peek();
                if (peekedItem != '{') {
                    return false;
                } 
                stack.pop();
            } else {
                return false;
            }
        }        
        return stack.isEmpty();
    }


    public static void main(String[] args) {
        Solution sol = new Solution();
        String s1 = "()[]{}";
        boolean sol1 = sol.isValid(s1);
        System.out.println(sol1);

        String s2 = "([)]";
        boolean sol2 = sol.isValid(s2);
        System.out.println(sol2);
    }
}


후......