πŸ“š Stack

πŸ“š Stack(μŠ€νƒ) 정리


πŸ“š Stackμ΄λž€?

  • C++의 ν‘œμ€€ ν…œν”Œλ¦Ώ 라이브러리(STL)μ—μ„œ μ œκ³΅ν•˜λŠ” LIFO(Last In First Out) 자료ꡬ쑰둜, κ°€μž₯ μ΅œκ·Όμ— μ‚½μž…λœ μš”μ†Œλ₯Ό λ¨Όμ € κΊΌλ‚΄λŠ” ꡬ쑰이닀.
  • μŠ€νƒμ€ 주둜 LIFO(ν›„μž…μ„ μΆœ) λ°©μ‹μœΌλ‘œ λ™μž‘ν•˜λ©°, λ°°μ—΄μ΄λ‚˜ μ—°κ²°λ¦¬μŠ€νŠΈλ₯Ό λ‚΄λΆ€μ μœΌλ‘œ μ‚¬μš©ν•˜μ—¬ κ΅¬ν˜„λœλ‹€.

πŸ’» Stack 문법

1. push() : μŠ€νƒ 맨 μœ„μ— 값을 μΆ”κ°€ν•œλ‹€.

2. pop() : μŠ€νƒ 맨 μœ„μ— 값을 μ œκ±°ν•œλ‹€.

3. top() : μŠ€νƒ 맨 μœ„μ— 값을 λΆˆλŸ¬μ˜¨λ‹€, ν•˜μ§€λ§Œ μŠ€νƒμ—μ„œ μ‚­μ œν•˜μ§€λŠ” μ•ŠλŠ”λ‹€.

4. empty() : μŠ€νƒμ΄ λΉ„μ–΄μžˆλŠ”μ§€ ν™•μΈν•œλ‹€. λΉ„μ–΄μžˆλ‹€λ©΄ true, λΉ„μ–΄μžˆμ§€ μ•Šλ‹€λ©΄ false 값이 λ‚˜μ˜¨λ‹€.


πŸ”Ž μŠ€νƒ μ„ μ–Έ

stack<데이터 νƒ€μž…=""> λ³€μˆ˜λͺ…;</mark>

#include <stack> // stack 라이브러리

stack<int> stk_int; // μ •μˆ˜ν˜• μŠ€νƒ
stack<char> stk_int; // λ¬Έμžμ—΄ μŠ€νƒ
stack<string> stk_string; //λ¬Έμžμ—΄ν˜• μŠ€νƒ

πŸ“Œ μΆ”κ°€

  • for(char c : s) 문법
    • λ²”μœ„κΈ°λ°˜ for 루프(range-based for loop)
    • μ»¨ν…Œμ΄λ„ˆλ‚˜ λ°°μ—΄μ˜ 각 μš”μ†Œλ₯Ό ν•˜λ‚˜μ”© 순차적으둜 μ ‘κ·Ό
  1. s λŠ” λ°˜λ³΅ν•  μ»¨ν…Œμ΄λ„ˆλ‚˜ λ°°μ—΄, μ—¬κΈ°μ„œλŠ” λ¬Έμžμ—΄ν˜•
  2. char c λŠ” s μ—μ„œ κ°€μ Έμ˜¨ 각 μš”μ†Œλ₯Ό ν•˜λ‚˜μ”© μ €μž₯ν•˜λŠ” λ³€μˆ˜
  3. 즉, λ¬Έμžμ—΄ν˜• s 의 각 문자λ₯Ό ν•˜λ‚˜μ”© 순차적 으둜 c에 ν• λ‹Ήν•˜λ©° λ°˜λ³΅ν•˜λŠ” 것이닀.