코테 스터디 48일차 TIL + 오늘의 학습 키워드 stack
- 오늘의 학습 키워드 stack
- 공부한 내용 본인의 언어로 정리하기
수도 코드
1. 빈 스택 생성
2. 문자열의 각 문자에 대해:
-여는 괄호 -> 스택에 푸시
-닫는 괄호 ->
스택 비어있으면 false
스택 top 과 매칭되지 않으면 false반환
매칭되면 스택에서 팝
스택이 비어있으면 true 아니면 false
- 오늘의 회고
- 어떤 문제가 있었고, 나는 어떤 시도를 했는지
while( ) ] } )
닫는 괄호가 있으면 s. push 가 되는걸로 반대로 만들었음
닫는괄호 있으면 여는 괄호를 넣는 방식으로...
MinStack 만 만들었다. 전부 다 넣는거 mainStack으로 만들고 그중에서 minStack을 만들던데
다 넣고 그중에서 min 값 찾는걸로 문제를 오역
왜 minstack을 만들때 minstack.peek()이 가장 작은 값인지?
minStack: 각 시점에서의 최솟값들의 히스토리를 저장한다.
새로 들어오는 val과 비교해서 val이 더 작거나 같으면 새로운 최솟값 후보가 된다.
mainstack에서 val 값이 minstack과 비교해서 더 크면 일단 못들어옴
만약에 현재 최소값보다 더 작은 값이 val에 있으면 minstack에 추가된다.
최소값인데 val이 기존에 minstack에 있는 값이랑 똑같은 경우
같은 값이어도 추가해서 pop할때 올바르게 처리될수 있음
current.string +"(" //사용이유
지금까지 만든 전체 문자열을 기억하기 위해서
stack.push("(");
단순히 "(" 만 넣으면 이전 정보를 잃어버림
while (!stack.isEmpty()) {
State current = stack.pop();
if (current.str.length() == 2 * n) {
result.add(current.str);
continue; // 다음 반복으로 이동 break를 쓰면 첫번째 답만찾고 루프 전체를 종료시켜서 전체를 못찾느다.0
}
}
// 올바름: 스택의 모든 상태를 처리
- 어떻게 해결했는지
- 무엇을 새롭게 알았는지
peek() : 인덱스를 반
- 내일 학습할 것은 무엇인지
Evaluate Reverse Polish Notation
Generate Parentheses
Daily Temperatures
Car Fleet
Largest Rectangle In Histogram
NeetCode
neetcode.io