KWiOS
KWiOS0101
KWiOS
  • 분류 전체보기 (108)
    • Algorithm (41)
      • 이코테 (14)
      • 이코테 문제풀이 (21)
      • 프로그래머스 (6)
    • CS (1)
      • 모두를 위한 컴퓨터 과학(CS50 2019) (0)
    • iOS (15)
    • Swift (36)
      • Swift문법 (32)
      • 기타 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 6

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
KWiOS

KWiOS0101

스택/큐
Algorithm/이코테

스택/큐

2022. 6. 18. 01:26
본 내용은 '이것이 취업을 위한 코딩테스트다 with 파이썬' 책을 기반으로 포스팅 하였습니다.

 

스택이란?

후입선출(LIFO) 구조로 쌓아 올린다는 것을 의미하며, 박스를 쌓아 올리는 것처럼 차곡차곡 쌓아 올린 형태의 자료구조를 말한다.

가장 마지막으로 들어온 자료를 TOP이라고 부르며, 삭제 연산을 수행하게 되면 가장 마지막으로 들어온 자료(TOP)가 삭제된다.

스택에서 삽입은 PUSH, 삭제는 POP이라는 용어로 사용한다. 

이때 비어있는 스택에 삭제(POP) 연산을 수행하게되면 스택 언터플로우가 발생하고,

꽉 차있는 스택에 삽입(PUSH) 연산을 수행하게되면 스택 오버플로우가 발생한다.

 

소스코드

var stack = [Int]()

stack.append(5)
stack.append(2)
stack.append(3)
stack.append(7)
stack.popLast()
stack.append(1)
stack.append(4)
stack.popLast()

print(stack.map{$0}) // [5,2,3,1]

 

큐란?

선입선출(FIFO) 구조로 대기줄에 비유할 수 있으며,

흔히 놀이공원에 입장하기 위해 줄을 설 때, 먼저온 사람이 먼저 들어가는 것과 같다.

큐는 스택과 달리 한쪽에서는 삽입(PUSH)작업이, 다른 한쪽에서는 삭제(POP)작업이 양쪽으로 이루어진다.



이때 삽입 작업이 이루어지는 곳을 리어(rear), 삭제 작업이 이루어지는 곳을 프론트(front)라고 말하며, 큐의 삽입연산을 인큐(enQueue), 삭제연산을 디큐(deQueue)라고 부른다.

즉, 가장 먼저 큐에 들어온 원소를 프론트라고하고, 가장 마지막에 들어온 원소를 리어라고 한다.

 

소스코드

var queue = [Int]()

queue.append(5)
queue.append(2)
queue.append(3)
queue.append(7)
queue.removeFirst()
queue.append(1)
queue.append(4)
queue.removeFirst()

print(queue.map({$0})) // [3,7,1,4]

 

'Algorithm > 이코테' 카테고리의 다른 글

그래프  (0) 2022.06.18
재귀함수  (0) 2022.06.18
탐색/자료구조  (0) 2022.06.18
구현 알고리즘  (0) 2022.06.10
그리디 알고리즘  (0) 2022.06.09
    'Algorithm/이코테' 카테고리의 다른 글
    • 그래프
    • 재귀함수
    • 탐색/자료구조
    • 구현 알고리즘
    KWiOS
    KWiOS

    티스토리툴바