๐Ÿ‘ฉ‍๐Ÿ’ปProgramming/Coding Test

[C#] [BOJ#10828] ์Šคํƒ

taesooya 2022. 8. 13. 16:51

https://www.acmicpc.net/problem/10828

 

10828๋ฒˆ: ์Šคํƒ

์ฒซ์งธ ์ค„์— ์ฃผ์–ด์ง€๋Š” ๋ช…๋ น์˜ ์ˆ˜ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ๋ช…๋ น์ด ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ์ •์ˆ˜๋Š” 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค. ๋ฌธ์ œ์— ๋‚˜์™€์žˆ์ง€

www.acmicpc.net

 

 

  • ์Šคํƒ : ์ œ๋„ค๋ฆญ์ด ์•„๋‹Œ ๊ฐœ์ฒด์˜ ๊ฐ„๋‹จํ•œ LIFO(Last In First Out: ๋งˆ์ง€๋ง‰์— ๋“ค์–ด๊ฐ„ ๊ฒƒ๋ถ€ํ„ฐ ์‚ฌ์šฉ) ์ปฌ๋ ‰์…˜์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • ๋„ค์ž„์ŠคํŽ˜์ด์Šค : System.Collections

My Solution


using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            int t = int.Parse(Console.ReadLine());
            Stack<string> myStack = new Stack<string>();

            for (int i = 0; i < t; i++)
            {
                string[] s = Console.ReadLine().Split();
                StringBuilder sb = new StringBuilder();
                string a = s[0];

                if (a == "push")
                {
                    myStack.Push(s[1]);
                }

                if (a == "pop")
                {
                    sb.Append(myStack.Count != 0 ? myStack.Pop() : "-1");
                    Console.WriteLine(sb);
                }

                if (a == "size")
                {
                    sb.Append(myStack.Count.ToString());
                    Console.WriteLine(sb);
                }

                if (a == "empty")
                {
                    sb.Append(myStack.Count != 0 ? "0" : "1");
                    Console.WriteLine(sb);
                }

                if (a == "top")
                {
                    sb.Append(myStack.Count == 0 ? "-1" : myStack.Peek());
                    Console.WriteLine(sb); ;
                }
            }
        }
    }
}

ShortCode

  • appendline์˜ ์ฐจ์ด๋ฅผ ๋ชจ๋ฅด๊ฒ ์Œ - ์ถœ๋ ฅ์ด ๋‹ค๋ฅด๊ธด ํ•จ ;; ์™œ?
  • ์‚ผํ•ญ์—ฐ์‚ฐ์ž ์‚ฌ์šฉํ•ด์„œ ์งง๊ฒŒ ๊ตฌํ˜„

using System;
using System.Collections.Generic;
using System.Linq;

var n = int.Parse(Console.ReadLine()!);
var stack = new Stack<string>();
var output = new System.Text.StringBuilder();

foreach (var _ in Enumerable.Range(0, n))
{
  var input = Console.ReadLine()!.Split();
  switch (input[0])
  {
    case "push":
      stack.Push(input[1]);
      break;
    case "pop":
      output.AppendLine(stack.TryPop(out var pop) ? pop : "-1");
      break;
    case "size":
      output.AppendLine(stack.Count.ToString());
      break;
    case "empty":
      output.AppendLine(stack.Any() ? "0" : "1");
      break;
    case "top":
      output.AppendLine(stack.TryPeek(out var peek) ? peek : "-1");
      break;
  }
}

Console.WriteLine(output.ToString());