Stack (3) 썸네일형 리스트형 [Algorithm] DFS 원리 이번 장에서는 DFS 알고리즘을 적용할 때 JVM의 Stack과 Frame이 어떤 식으로 변경되는지 알아본다. Stack과 Frame에 대한 정의는 오라클 공식 문서 (링크)를 확인하거나 필자가 정리한 글 (링크)에서 확인한다. 아래의 그림과 같은 트리를 DFS로 탐색해보도록 한다. 트리를 탐색하는 코드를 작성하면 아래의 이미지와 같이 작성이 된다. 각 노드를 나타내는 Node 클래스는 숫자를 저장할 data 값과 왼쪽 자식 Node, 오른쪽 자식 Node를 가지고 있다. main() 메서드에서는 탐색해야하는 트리를 생성하고 있으며 dfs 메서드에서는 main()에서 생성한 트리를 탐색하고 있다. 우리가 주의깊게 확인해야하는 부분은 dfs메서드다. 한줄한줄 진행될 때 Stack의 변화를 살펴보도록 한다... [JVM] Stack & Frame Stack Each Java Virtual Machine thread has a private Java Virtual Machine stack, created at the same time as the thread. A Java Virtual Machine stack stores frames (§2.6). A Java Virtual Machine stack is analogous to the stack of a conventional language such as C: it holds local variables and partial results, and plays a part in method invocation and return. ---------- 중략 ---------- If the compu.. [Algorithm] Stack 이번 장에서는 Stack을 활용해 문제를 해결해본다. 모든 코드는 깃허브 (링크)의 테스트 코드로 정리해두었다. 올바른 괄호 괄호가 입력되면 올바른 괄호이면 “YES", 올바르지 않으면 ”NO"를 출력합니다. (())() 이것은 괄호의 쌍이 올바르게 위치하는 거지만, (()()))은 올바른 괄호가 아니다. 입력설명 첫 번째 줄에 괄호 문자열이 입력됩니다. 문자열의 최대 길이는 30이다. 출력설명 첫 번째 줄에 YES, NO를 출력한다. 입력예제 1 (()(()))(() 출력예제 1 NO public class CorrectBracket { public String solution1(String brackets) { Stack stackOfBrackets = new Stack(); for (int i = .. 이전 1 다음