자료구조

스택연습문제 (받아쓰기)

hyunjin-dev-log 2021. 12. 25. 23:58
using System;
using System.Collections;

namespace HelloWorld
{
    class App
    {
        private int sum;

        public App()
        {
            Stack stack = new Stack();

            //보기1
            int[] arr1 = new int[] { 1, 0, 2 };
            Console.Write("보기1 : ");
            foreach (int element in arr1)
            {
                Console.Write("{0} ", element);
            }
            Console.WriteLine();
            Console.Write("보기1 합 요소: ");
            for (int i = 0; i < arr1.Length; i++)
            {
                stack.Push(arr1[i]);
                if (arr1[i] == 0)
                {
                    stack.Pop();
                    stack.Pop();
                }
            }

            int[] arr2 = new int[arr1.Length];
            for (int i = 0; i < arr1.Length; i++)
            {
                if (stack.Count != 0)
                {
                    object popStack = stack.Pop();
                    arr2[i] = (int)popStack;
                    Console.Write("{0} ", arr2[i]);
                    sum += arr2[i];
                }
            }
            Console.WriteLine();
            Console.WriteLine("보기1 합: {0}", sum);
            Console.WriteLine();

            //보기2
            sum = 0;
            int[] arr3 = new int[] { 1, 0, 2, 2, 2, 0, 0, 1, 3 };
            Console.Write("보기2 : ");
            foreach (int element in arr3)
            {
                Console.Write("{0} ", element);
            }
            Console.WriteLine();
            for (int i = 0; i < arr3.Length; i++)
            {
                stack.Push(arr3[i]);
                if (arr3[i] == 0)
                {
                    stack.Pop();
                    stack.Pop();
                }
            }

            int[] arr4 = new int[arr3.Length];
            Console.Write("보기2 합 요소: ");
            for (int i = 0; i < arr3.Length; i++)
            {
                if (stack.Count != 0)
                {
                    object popStack = stack.Pop();
                    arr4[i] = (int)popStack;
                    Console.Write("{0} ", arr4[i]);
                    sum += arr4[i];
                }
            }
            Console.WriteLine();
            Console.WriteLine("보기2 합: {0}", sum);
            Console.WriteLine();

            //3.
            sum = 0;
            int[] arr5 = new int[] { 2, 3, 3, 0, 1, 1, 1, 0, 0, 2 };
            Console.Write("3문 : ");
            foreach (int element in arr5)
            {
                Console.Write("{0} ", element);
            }
            Console.WriteLine();
            for (int i = 0; i < arr5.Length; i++)
            {
                stack.Push(arr5[i]);
                if (arr5[i] == 0)
                {
                    stack.Pop();
                    stack.Pop();
                }
            }

            int[] arr6 = new int[arr5.Length];
            Console.Write("3문 합 요소: ");
            for (int i = 0; i < arr5.Length; i++)
            {
                if (stack.Count != 0)
                {
                    object popStack = stack.Pop();
                    arr6[i] = (int)popStack;
                    Console.Write("{0} ", arr6[i]);
                    sum += arr6[i];
                }
            }
            Console.WriteLine();
            Console.WriteLine("3문 합: {0}", sum);
            Console.WriteLine();

            //4.
            sum = 0;
            int[] arr7 = new int[] { 1, 3, 5, 4, 0, 0, 7, 0, 0, 6 };
            Console.Write("4문 : ");
            foreach (int element in arr7)
            {
                Console.Write("{0} ", element);
            }
            Console.WriteLine();
            for (int i = 0; i < arr7.Length; i++)
            {
                stack.Push(arr7[i]);
                if (arr7[i] == 0)
                {
                    stack.Pop();
                    stack.Pop();
                }
            }

            int[] arr8 = new int[arr7.Length];
            Console.Write("4문 합 요소: ");
            for (int i = 0; i < arr7.Length; i++)
            {
                if (stack.Count != 0)
                {
                    object popStack = stack.Pop();
                    arr8[i] = (int)popStack;
                    Console.Write("{0} ", arr8[i]);
                    sum += arr8[i];
                }
            }
            Console.WriteLine();
            Console.WriteLine("4문 합: {0}", sum);
        }
    }
}