안녕하세요.
백준 10773번 '제로' 문제 풀이를 진행해보도록 하겠습니다.
해당 문제는 숫자를 리스트에 추가해가다가 0이 나오면 최근 추가했던 수를 삭제시키고 최종적으로 수를 전부 더해 출력하는 문제입니다.
예제입력
4
3
0
4
0
예제출력
0
우선, 수의 개수 (N)과 그 수들을 입력으로 받아오겠습니다.
그 후에 수를 추가할 numbers를 리스트로 선언해줍니다.
int n = int.Parse(Console.ReadLine());
List<int> numbers = new List<int>();
이제 for문으로 수를 하나씩 받아옵니다.
수가 0이라면 리스트 맨 뒤에 위치한 수를 삭제시키고, 아니라면 리스트에 수를 더해줍니다.
for (int i = 0; i < n; i++)
{
int num = int.Parse(Console.ReadLine());
if (num != 0)
{
numbers.Add(num);
}
else if (numbers.Count > 0)
{
numbers.RemoveAt(numbers.Count - 1); // 마지막 제거
}
}
마지막으로 리스트의 값들을 모두 더해 출력해줍니다.
그럼 정답이 출력됩니다.
int answer = 0;
foreach (int num in numbers)
{
answer += num;
}
Console.WriteLine(answer);
오늘은 비교적 쉬운 문제를 풀었습니다.
제한시간이 1초라서 시간초과가 날까 싶었는데 다행이 통과되었네요 🤫
다음은 전체코드입니다.
전체코드
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
int n = int.Parse(Console.ReadLine());
List<int> numbers = new List<int>();
for (int i = 0; i < n; i++)
{
int num = int.Parse(Console.ReadLine());
if (num != 0)
{
numbers.Add(num);
}
else if (numbers.Count > 0)
{
numbers.RemoveAt(numbers.Count - 1); // 마지막 제거
}
}
int answer = 0;
foreach (int num in numbers)
{
answer += num;
}
Console.WriteLine(answer);
}
}'알고리즘 풀이' 카테고리의 다른 글
| [C#] 백준 7568번 문제풀이 (3) | 2025.07.29 |
|---|---|
| [C#] 백준 1676번 문제풀이 (1) | 2025.07.28 |
| [C#] 백준 1260번 문제풀이 (4) | 2025.07.26 |
| [C#] 백준 10815번 문제풀이 (1) | 2025.07.25 |
| [C#] 백준 2745번 문제풀이 (0) | 2025.07.24 |