알고리즘

[자료구조] 스택/큐

2023. 4. 4. 15:27
목차
  1. 스택/큐
  2. 문제 풀이

 

스택/큐

스택과 큐는 추상적 자료구조(Abstract Data Type)에 속한다.

이것은 자료구조의 방법이 코드로 정의된 것이 아니라 그 구조의 행동 양식만 정의된 것을 말한다.

스택과 큐는 배열을 기반으로 어떤 규칙을 설정한 것이라 할 수 있다.

 

스택은 배열이 수직으로 쌓여있는 식이라고 생각하면 된다.

배열에 어떤 요소를 추가하거나 배열에서 어떤 요소를 제거할 때는 맨 위에서부터 한다.

후입선출(Last In, First Out) 구조라고 할 수 있다. 

실생활의 예로는 웹페이지 뒤로가기 버튼을 누르는 것을 들 수 있다.

뒤로가기는 곧 히스토리 스택의 맨 위에서 한 페이지씩 가져가는 것이다.

Ctrl + Z로 최근의 실행 작업을 되돌리는 것도 스택 자료구조이다.

 

큐는 말 그대로 줄서기를 생각하면 된다.

가장 먼저 큐에 진입한 요소가 가장 먼저 나가게 된다.

선입선출(First In, First Out) 구조라고 할 수 있다.

예시로는 쇼핑몰의 선착순 주문 처리 같은 것을 생각할 수 있다.

 

문제 풀이

프로그래머스 - 같은 숫자는 싫어

문제 보기

function solution(arr)
{
    let stack = [];
    arr.forEach((target) => {
        if(target !== stack[stack.length -1]) stack.push(target)
    })
    return stack;
}

 

프로그래머스 - 올바른 괄호

문제 보기

function solution(s){
    //처음에 닫는 괄호이거나 끝에 여는 괄호면 false 리턴
    if(s[0] === ')' || s[s.length-1] === '(') return false
    let stack = []
    //배열의 마지막에 여는 괄호가 있고 현재 문자열이 닫는 괄호일 경우 스택에서 pop
    //아니면 스택에 넣기
    for(i=0; i<s.length; i++){
        if(s[i] === ')' && stack.at(-1) === '(') stack.pop()
        else stack.push(s[i])
    }
    return stack.length === 0;
}

 

 

'알고리즘' 카테고리의 다른 글

완전탐색  (0) 2023.04.25
DFS/BFS  (0) 2023.04.11
내 즙을 짜낸 Greatest Common Divisor of Strings  (0) 2023.03.29
그리디 알고리즘(탐욕법)  (2) 2023.03.21
프로그래머스 lv.0 컨트롤 제트  (0) 2023.03.01
  1. 스택/큐
  2. 문제 풀이
'알고리즘' 카테고리의 다른 글
  • 완전탐색
  • DFS/BFS
  • 내 즙을 짜낸 Greatest Common Divisor of Strings
  • 그리디 알고리즘(탐욕법)
JeanneLee57
JeanneLee57
공부하고 기록을 남기는 개발자 Jeanne
JeanneLee57
코딩은 진리
JeanneLee57
전체
오늘
어제
  • 분류 전체보기 (115)
    • Javascript (15)
    • React (15)
    • Next.js (8)
      • Next.js 베타 문서 번역 (5)
    • 프로젝트 (34)
      • 미니 프로젝트 & 과제 (25)
      • SEB 44 pre-project (1)
      • SEB 44 main-project (8)
    • 알고리즘 (12)
    • 부트캠프 준비 (6)
    • 기술면접 (3)
    • CS (7)
    • 코드스테이츠 프론트엔드 부트캠프 (12)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • codestates
  • RTK
  • react
  • useEffect
  • HTML
  • 고차함수
  • 구조분해할당
  • JavaScript
  • 프로그래머스
  • 프리코드캠프
  • 코드스테이츠
  • 프론트엔드
  • 부트캠프
  • Next.js
  • 유데미
  • 부트캠프준비
  • 알고리즘
  • CSS
  • 번역
  • 회고

최근 댓글

최근 글

hELLO · Designed By 정상우.
JeanneLee57
[자료구조] 스택/큐
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.