너무 익숙한 Stack. 그러면 Stack은 어떻게 쓸 수 있을까?
1. LIFO를 활용하는 문제들에서는 당연히 Stack을 쓴다.
2. DFS(깊이 우선 탐색)에서 사용된다. [재귀]
* 대표적으로 유효성 문제 에서 Stack을 쓴다.
A = ()[(())]{[]}
이게 유효한지 검사할 때를 생각해보자.
어떻게 해야하지? +1, -1 해서..0으로 할까?
이런 생각부터 시작하는 것이다.
하지만 그게 말이될까? ( ] 하면 0이되는데.. 어떡하지?
이렇다보면 아! LIFO 으로 하면 되는구나! 생각이 들것이다.
이렇게 생각을 할 수 있는 것이 코딩적 사고다.
* 조건이 필요할 때 Stack을 쓴다.
예를 들어서, 다음 숫자보다 커질 때 까지 몇일이 걸리는지?
[13, 15, 7, 9, 14, 17]
⇒[1, 4, 1, 1, 0]
이것은 결국 유효성 문제이다. 즉, 특정 조건 하에서만 반응을 하는 것이다!
모르겠으면 우선 외우자. 그러면서 응용확장해보면 된다.
'코딩 테스트' 카테고리의 다른 글
[07-2] 해시 테이블(Hash Table)이란? (2) (1) | 2023.11.14 |
---|---|
[07-1] 해시 테이블(Hash Table)이란? (1) (1) | 2023.11.14 |
[06-1] 스택(Stack)이란? (3) | 2023.11.09 |
[05-1] 큐(Queue)란? (0) | 2023.11.09 |
[04-2] 연결 리스트의 활용 (2) | 2023.11.09 |