๊ฐœ๋ฐœ์ผ์ง€

[JAVA] ์Šคํƒ/ํ ๋ณธ๋ฌธ

Algorithm

[JAVA] ์Šคํƒ/ํ

O'mil 2024. 5. 1. 16:49
728x90

๐Ÿ“์Šคํƒ

  • ํ›„์ž…์„ ์ถœ: ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๋„ฃ์€ ๊ฒƒ์„ ๊ฐ€์žฅ ๋จผ์ € ์ถœ๋ ฅํ•จ
  • ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€/์‚ญ์ œ ํ•จ → ArrayList๊ฐ™์€ ๋ฐฐ์—ด ๊ธฐ๋ฐ˜์˜ ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค๊ฐ€ ์ ํ•ฉํ•จ
  • ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์—ญ์ˆœ ์ฒ˜๋ฆฌ, ๊ด„ํ˜ธ ๊ฒ€์‚ฌ(๊ด„ํ˜ธ๊ฐ€ ์ž˜ ๋‹ซํ˜”๋Š”์ง€ ํ™•์ธ), ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰ ๋“ฑ์— ์‚ฌ์šฉํ•˜๊ธฐ์— ์ ํ•ฉํ•จ
// ์Šคํƒ ์ƒ์„ฑํ•˜๊ธฐ
import java.util.stack;

Stack<> stack = new Stack<>();

 

  • ์Šคํƒ์˜ ๋ฉ”์„œ๋“œ
    • empty(): ์Šคํƒ์ด ๋น„์–ด์žˆ๋Š”์ง€ ์•Œ๋ ค์คŒ
    • peek(): ์Šคํƒ์˜ ๋งจ ์œ„์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ (์Šคํƒ์—์„œ ๊ฐ์ฒด๋ฅผ ๊บผ๋‚ด์ง€๋Š” ์•Š์Œ)
      ๋น„์—ˆ๋‹ค๋ฉด ๋น„์—ˆ๋‹ค๋ฉด EmptyStackException ์—๋Ÿฌ ๋ฐœ์ƒ
    • pop(): ์Šคํƒ์˜ ๋งจ ์œ„์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ๊บผ๋‚ด์„œ ๋ฐ˜ํ™˜
      ๋น„์—ˆ๋‹ค๋ฉด ๋น„์—ˆ๋‹ค๋ฉด EmptyStackException ์—๋Ÿฌ ๋ฐœ์ƒ
    • push(๊ฐ์ฒด): ์Šคํƒ์— ๊ฐ์ฒด ์ €์žฅ
    • search(๊ฐ์ฒด): ์Šคํƒ์—์„œ ๊ฐ์ฒด๋ฅผ ์ฐพ์•„ ๋ฐ˜ํ™˜ (๋ชป ์ฐพ์œผ๋ฉด '-1' ๋ฐ˜ํ™˜)
      ๋ฐฐ์—ด๊ณผ ๋‹ฌ๋ฆฌ 0์ด ์•„๋‹ˆ๋ผ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.

๐Ÿ“ํ

  • ์„ ์ž…์„ ์ถœ: ๋จผ์ € ๋„ฃ์€ ๊ฒƒ์„ ๋จผ์ € ์ถœ๋ ฅํ•จ
  • ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€/์‚ญ์ œ๊ฐ€ ์‰ฌ์šด LinkedList๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉ
    : ํ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ผ ๋•Œ ํ•ญ์ƒ ์ฒซ ๋ฒˆ์งธ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•จ
    → ๋ฐฐ์—ด๊ธฐ๋ฐ˜ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ผ ๋•Œ๋งˆ๋‹ค ๋นˆ ๊ณต๊ฐ„์„ ์ฑ„์šฐ๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ์˜ ๋ณต์‚ฌ๊ฐ€ ๋ฐœ์ƒํ•ด ๋น„ํšจ์œจ์ ์ž„
  • ์ˆœ์„œ ์œ ์ง€, ์ˆœ์ฐจ์ ์œผ๋กœ ์ž‘์—… ์ฒ˜๋ฆฌ, ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰, ๋ฒ„ํผ ํ™œ์šฉ์— ์ ํ•ฉํ•จ
// ํ ์„ ์–ธํ•˜๊ธฐ
import java.util.Queue;
import java.util.LinkedList;

Queue queue = new LinkedList<>();

 

  • ํ์˜ ๋ฉ”์„œ๋“œ
    • add(๊ฐ์ฒด): ๊ฐ์ฒด๋ฅผ ํ์— ์ถ”๊ฐ€
      ์ €์žฅ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•˜๋ฉด IllegalStateException ๋ฐœ์ƒ
    • remove(): ํ์—์„œ ๊ฐ์ฒด๋ฅผ ๊บผ๋‚ด ๋ฐ˜ํ™˜
      ๋น„์—ˆ์œผ๋ฉด NoSuchElementException ๋ฐœ์ƒ
    • element(): ์š”์†Œ๋ฅผ ์ฝ์–ด์˜ด (์‚ญ์ œ ์•ˆํ•จ)
      peek๊ณผ ๋‹ฌ๋ฆฌ ํ๊ฐ€ ๋น„์—ˆ์„ ๋•Œ NoSuchElementException ๋ฐœ์ƒ
    • offer(๊ฐ์ฒด): ํ์— ๊ฐ์ฒด๋ฅผ ์ €์žฅ
    • poll(): ํ์—์„œ ๊ฐ์ฒด๋ฅผ ๊บผ๋‚ด์„œ ๋ฐ˜ํ™˜(์ €์žฅ๋œ ๊ฐ’ ์‚ญ์ œ) / ๋น„์—ˆ์œผ๋ฉด null
    • peek(): ์š”์†Œ๋ฅผ ์ฝ์–ด์˜ด (์‚ญ์„ธ ์•ˆํ•จ) / ๋น„์—ˆ์œผ๋ฉด null

 

 


๐Ÿ“š Reference

 

[Java/์ž๋ฐ”] ์Šคํƒ(Stack)๊ณผ ํ(Queue)

728x90
Comments