
- 오늘의 학습 키워드: 스택과 큐
- 공부한 내용 본인의 언어로 정리하기
스택 두개로 pop push 만들기
원래 스택은 LIFO() 라서 FIFO로 쓰기 위해 두개의 스택을 준비하고
stackOut이 비었다고 확인되면 stackIn의 요소를 stackOut으로 보낸다.
있는지 없는지는 peek() 메서드를 통해서 파악하고 stackOut이 100% 옮겨져서
FIFO 가 적용된 pop()을 사용할 수가 있다.
- 오늘의 회고
- 어떤 문제가 있었고, 나는 어떤 시도를 했는지
public int pop() {
peek();
return stackOut.pop();
}
이 부분을 잘못 만들어서 한참 헤맸다.
- 어떻게 해결했는지
이 부분을 못만들어서 gpt의 도움을 받았다.
-peek() 메서드의 호출 : stackout이 비어있을때 stackIn 에서 stackout으로
모든 요소들을 이동시키기 위한 메서드
stackOut.pop() : peek() 메서드를 호출해서 stackout에 입력된 모든 요소들이 이동했으니,
pop을 호출해서 이 요소를 전부 빼내는 역할
- 무엇을 새롭게 알았는지
stackIn에서 요소를 입력해넣었으면 거꾸로 stackout이 비어있다는 전제하에
peek() 메서드로
stackIn에 있는 모든 요소를 꺼내어서 stackOut에다가 옮겨 담으면 FIFO가 들어가진다.
- 내일 학습할 것은 무엇인지
수도코드
클래스 MyQueue:
stackIn, stackOut을 빈 스택으로 초기화
함수 push(x):
stackIn에 x를 삽입
함수 요소이동확인():
만약 stackOut이 비어있다면:
stackIn이 비어있지 않는 동안:
stackOut에 stackIn에서 꺼낸 요소를 삽입
함수 pop():
요소이동확인()
stackOut에서 요소를 꺼내 반환
함수 peek():
요소이동확인()
stackOut의 맨 위 요소 반환 (제거하지 않음)
함수 empty():
stackIn이 비어있고 stackOut도 비어있으면 참 반환
그렇지 않으면 거짓 반환
'【스터디노트】 > ▷TIL' 카테고리의 다른 글
99클럽 코테 스터디 6일차 TIL + 오늘의 학습 키워드 동적 프로그래밍 (0) | 2025.04.07 |
---|---|
99클럽 코테 스터디 5일차 TIL + 오늘의 학습 키워드 스택과 큐 (0) | 2025.04.04 |
99클럽 코테 스터디 3일차 TIL + 오늘의 학습 키워드 문자열 (0) | 2025.04.02 |
99클럽 코테 스터디 2일차 TIL + 오늘의 학습 키워드 문자열 (0) | 2025.04.02 |
[D-0] 파이널 프로젝트까지 끝! (1) | 2024.11.13 |