///////
Search

์Šคํƒ์ •๋ ฌ

ํƒœ๊ทธ
์žฅ์„œ์œค
์•Œ๊ณ ๋ฆฌ์ฆ˜
์ž‘์„ฑ์ผ
2022/09/27

ย Stack ๊ตฌํ˜„ ๋ฌธ์ œ

์Šคํƒ์ด๋ž€ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ์กฐ์ด๋‹ค. ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
์ฆ‰, ๊ฐ€์žฅ ์ตœ๊ทผ์— ์Šคํƒ์— ์ถ”๊ฐ€ํ•œ ํ•ญ๋ชฉ์ด ๊ฐ€์žฅ ๋จผ์ € ์ œ๊ฑฐ๋  ํ•ญ๋ชฉ์ด๋‹ค. ์Šคํƒ์˜ ๊ตฌํ˜„
pop() ๊ฐ€์žฅ ์ตœ ์ƒ์œ„์— ์œ„์น˜ํ•œ ์ž๋ฃŒ๋ฅผ ์ถ”์ถœํ•œ ํ›„์— ์Šคํƒ์—์„œ ์ œ๊ฑฐํ•œ๋‹ค
push(item) ์Šคํƒ์˜ ์ตœ ์ƒ์œ„์— ์ƒˆ๋กœ์šด ์ž๋ฃŒ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค
isEmpty() ์Šคํƒ์ด empty ์ƒํƒœ์ธ์ง€ ํ™•์ธํ•œ๋‹ค. ๋น„์–ด ์žˆ์œผ๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค
clear() ์Šคํƒ์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ์ž๋ฃŒ๋“ค์„ ์‚ญ์ œํ•œ๋‹ค
peek() ๊ฐ€์žฅ ์ตœ ์ƒ์œ„์— ์œ„์น˜ํ•œ ์ž๋ฃŒ๋ฅผ ์ถ”์ถœํ•œ๋‹ค pop ๋ฉ”์†Œ๋“œ์™€๋Š” ๋‹ฌ๋ฆฌ ์Šคํƒ์—์„œ ์ œ๊ฑฐํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค.

ย ํ’€์ด

package com.quiz.stack; import java.util.Arrays; import java.util.Scanner; interface Stack { void pop(); void push(char item); boolean isEmpty(); void clear(); void peek(); } class StackImpl implements Stack { private int inpNum; private int arrNum; private char[] charArr; private String tmp; private char item; public void setTmp(char inpChar) { this.tmp += inpChar; } public StackImpl(int inpNum) { charArr = new char[inpNum]; } @Override public void pop() {//์ตœ์ƒ์œ„ ์ž๋ฃŒ ์‚ญ์ œ for (int i = 0; i < charArr.length; i++) { if (charArr[i] == 0) { int last = i - 1; charArr[last] = 0; arrNum = last; break; } } print(charArr, arrNum); } @Override public void push(char item) {//์ž๋ฃŒ ์ž…๋ ฅ for (int i = 0; i < charArr.length; i++) { if (charArr[i] == 0) { charArr[i] = item; setTmp(item); arrNum = i + 1; break; } } print(charArr, arrNum); } @Override public boolean isEmpty() { if (charArr.length == 0) { return true; } return false; } @Override public void clear() { Arrays.fill(charArr, (char) 0); arrNum = 0; System.out.println("์Šคํƒ์ด ์ดˆ๊ธฐํ™” ๋˜์—ˆ์Šต๋‹ˆ๋‹ค."); System.out.println("Stack is empty !"); } @Override public void peek() { for (int i = 0; i < charArr.length; i++) { if (charArr[i] == 0) { int last = i - 1; arrNum = last; break; } System.out.println("Stack elements : " + charArr[i]); } } private void print(char[] charArr, int arrNum) { System.out.print("Stack elements : "); for (int i = 0; i < arrNum; i++) { System.out.print(charArr[i]); } System.out.println(); } } public class StackMain { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("์Šคํƒ ์‚ฌ์ด์ฆˆ๋ฅผ ์ž…๋ ฅํ•˜์‹œ์˜ค >> "); int inpNum = sc.nextInt(); Stack stack = new StackImpl(inpNum); System.out.println("์ž…๋ ฅ๋œ ๋ฌธ์ž : A"); stack.push('A'); System.out.println("์ž…๋ ฅ๋œ ๋ฌธ์ž : B"); stack.push('B'); System.out.println("์ž…๋ ฅ๋œ ๋ฌธ์ž : C"); stack.push('C'); System.out.println("์‚ญ์ œ๋œ ๋ฌธ์ž : C"); stack.pop(); System.out.println("์‚ญ์ œ๋œ ๋ฌธ์ž : B"); stack.pop(); System.out.println("์—ฟ๋ณผ๋ ค๋Š” ๋ฌธ์ž : A"); stack.peek(); stack.clear(); } }
Java
๋ณต์‚ฌ
๊ฒฐ๊ณผ
์Šคํƒ ์‚ฌ์ด์ฆˆ๋ฅผ ์ž…๋ ฅํ•˜์‹œ์˜ค >> 5 ์ž…๋ ฅ๋œ ๋ฌธ์ž : A Stack elements : A ์ž…๋ ฅ๋œ ๋ฌธ์ž : B Stack elements : AB ์ž…๋ ฅ๋œ ๋ฌธ์ž : C Stack elements : ABC ์‚ญ์ œ๋œ ๋ฌธ์ž : C Stack elements : AB ์‚ญ์ œ๋œ ๋ฌธ์ž : B Stack elements : A ์—ฟ๋ณผ๋ ค๋Š” ๋ฌธ์ž : A Stack elements : A Stack is empty !