【스터디노트】/▷TIL

코테 스터디 48일차 TIL + 오늘의 학습 키워드 stack

아딜렛 2025. 7. 1. 13:10


- 오늘의 학습 키워드 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

Largest Rectangle In Histogram