C# Stack

굥지·2024년 9월 27일
0

유니티 부트캠프

목록 보기
12/14

❓문제

하나의 클래스를 만들어 다음 기능을 구현한다. 데이터를 하나씩 저장할 수 있다. 데이터를 하나씩 꺼낼 수 있다. 꺼내는 데이터를 지정할 수는 없으며, 무조건 가장 나중에 저장한 데이터를 꺼내준다. 데이터를 꺼내면 저장된 데이터에서 빠진다.


❓스택의 특성

출처 : https://hong-devbox.tistory.com/4

💻코드

using System.Collections.Generic;
using UnityEngine;

public class Stack
{
    List<int> data;
    
    public Stack()
    {
        data = new List<int>();
    }

    public void Push(int value)
    {
        data.Add(value);   
    }

    public int Pop()
    {
        int rtn = data[data.Count - 1];
        data.RemoveAt(data.Count - 1);

        return rtn;
    }
   void Start()
   {
      
        Stack stack = new Stack();
        stack.Push(3);
        stack.Push(4);
        Debug.Log(stack.Pop());

        stack.Push(5);
        stack.Push(6);
        Debug.Log(stack.Pop());
        Debug.Log(stack.Pop());

        stack.Push(7);
        stack.Push(8);
        stack.Push(9);

        Debug.Log(stack);

    }

✍️풀이

Stack이라는 클래스를 만들고, 생성자 Stack()에서는 새로운 리스트를 초기화하여 스택을 빈 상태로 만든다. Push()메서드와 Pop()메서드를 생성하고, Push메서드에서는 데이터를 입력하도록, Pop()메서드는 데이터를 꺼내도록 기능을 만든다.

3, 4를 추가하고 출력하게되면 가장 마지막에 넣은 데이터가 출력되기때문에 4가 출력되고 4가 없어진다.

5, 6을 추가하고 출력하게되면 6이 출력되고 6이 없어진다. 또 출력하면 그 다음에 있는 5가 출력되고, 7,8,9가 차례대로 추가된다.

그럼 마지막으로 남아있는 3, 7, 8, 9가 출력되게 된다.

🖨결과

0개의 댓글

관련 채용 정보