출처 : https://www.acmicpc.net/problem/10773
#include <stdio.h>
int arr[100000];
int idx = 0;
int* stack(int num)
{
if (num == 0)
{
idx--;
arr[idx] = 0;
}
else
{
arr[idx] = num;
idx++;
}
return arr;
}
int main()
{
int n, sum = 0;
scanf("%d", &n);
int num;
for (int i = 0; i < n; i++)
{
scanf("%d", &num);
int* arr = stack(num);
}
for (int i = 0; i < n; i++)
{
sum += arr[i];
}
printf("%d\n", sum);
}
> 어짜피 arr에 있는 모든 값의 합을 구하는게 답이기 때문에,
굳이 pop() 함수를 구현해서 return 을 하는 과정은 필요없다고 생각하여,
0이 입력되면 index값을 하나 줄여서, 지워야 하는 값을 0으로 갱신했다.
그렇게 되면 arr 배열의 모든 합인 sum을 구하는데에 있어서 영향을 끼치지 않게 된다.
'Problem Solving > 백준' 카테고리의 다른 글
[백준] 2523번: 별 찍기 - 13 (0) | 2020.03.15 |
---|---|
[백준] 1436번 : 영화감독 숌 (0) | 2020.02.29 |
[백준] 1932번 : 정수 삼각형 (0) | 2020.02.25 |
[백준] 2751번 : 수 정렬하기 2 (0) | 2020.02.24 |
[백준] 10828번 : 스택 (0) | 2020.02.24 |