728x90
문제
https://www.acmicpc.net/problem/10773
10773번: 제로
첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경
www.acmicpc.net
그냥 스택을 써서 0이 나오면 stack.Pop(), 아니면 stack.Push()하는 간단한 문제다.
코드
using System;
using System.Text;
using System.Collections.Generic;
namespace baekjoon
{
class Algorithm
{
static void Main(string[] str)
{
int cnt = Convert.ToInt32(Console.ReadLine()); // "4" -> 4
Stack<int> stack = new Stack<int>();
for(int i = 0; i < cnt; i++)
{
int num = Convert.ToInt32(Console.ReadLine()); // "3" -> 3
if(num == 0) { stack.Pop(); }
else { stack.Push(num); }
}
Console.WriteLine(stack.Sum());
}
}
}
고민
for문 돌려서 stack에 있는거 pop했는데, 알고보니 스택엔 Sum()이라는 메서드가 있었다. ㅎ.. 오늘도 또 하나 배워간다.
'동식이 취업시키기 작전 > 코딩테스트' 카테고리의 다른 글
[백준] 10845 큐(c#) (1) | 2024.01.22 |
---|---|
[백준] 카드2 2164(c#) (1) | 2024.01.22 |
[백준] 스택 10828(c#) (1) | 2024.01.21 |
[백준] 9012번 괄호(c#) (1) | 2024.01.21 |
[백준] 으로 코딩테스트 대비하기(feat. 애인) (1) | 2024.01.21 |