자료구조와 알고리듬 With Java/[인프런] Algorithm

Chapter 05. Stack, Queue (자료구조)

계란💕 2022. 4. 13. 18:03

1. 올바른 괄호

java
열기

  Note)

  - 괄호가 있으면 거의 스택 문제이다.

 

 

2. 괄호 문자제거

java
열기

  Note)

  - 여는 괄호와 알파벳을 push()한다.

  - 닫는 괄호를 만나면 여는 괄호까지 pop()을 시킨다.

  - pop()은 stack()에서 꺼내면서 반환한다.

  - while() 문은 중괄호 절 없이도 수행이 된다.

  - 스택은 stack.get(i)으로 인덱스 접근 가능하다.

  - while( stack.pop() != '(' ); 여는 괄호가 나올 때까지 pop()하라는 의미

 

 

3. 크레인 인형 뽑기 (카카오 기출)

java
열기

  Note)

  - 터뜨려진 인형 개수 출력하기

  - pop()으로 꺼내기 전에 같은지 비교한다.

  -  board.length : 2차원 배열의 행 크기 (몇 줄인지)

    -> board[0].length : 2차원 배열의 열 크기 (0번 행이 칸이 몇 칸인지) 

  - 반드시 break 필요하다.

 

4. 후위식 연산 (postfix)

java
열기

 

  Note)

  - lt  (연산기호) rt 임에 주의한다.

  - str에서 꺼낸 character의 값이 숫자이면 push()한다.

  - 숫자가 아닌 네 가지 연산기호의 경우에는 각각 연산결과를 새로  push()해준다.

  - isDigit()는 Character의 메서드이다.

  - stack은 Integer로 이루어져 있는 stack을 만든다.

 

 

5. 쇠막대기

java
열기

  Note)

  - 괄호가 쌍'()'으로 나오면 레이져 발사한다.

  - 닫는 괄호가 나왔을 때, peek()한 게 여는 괄호이면, pop() 시킨다.

  - 닫는 괄호가 막대기의 끝인 경우, 하나를 더해준다.

  - answer += stack.size();

 

 

6. 공주 구하기

java
열기

  Note)

  - Queue 이용한다. 

 

 

7. 교육과정

java
열기

  Note)

  - 마지막에 Q가 꼭 비어 있어야한다.

  - for문 ( 필요한 문자가 있는 경우에만 확인한다. ) 

  - 마지막에 필수 과목을 이수하지 않은경우는 Q가 비어있지 않으므로 no를 리턴한다.

  - Q.contains()를 이용한다.

 

 

8. 응급실

java
열기

  Note)

  - id와 priority를 인스턴스 변수로 갖는 Person 클래스를 만든다.

  - Person형 Queue를 만든다.