티스토리 뷰

728x90
반응형

이 문제는 스택을 활용하는 문제이다. 0이 입력으로 들어왔을 때 stack을 pop하는 조건을 가진 문제로 조건에 따라 stack을 채우고, 마지막에 스택에 있는 모든 원소를 더하여 출력함으로써 풀 수 있다.

작성한 코드는 다음과 같다.


#include<stdio.h>
//https://ark-hive.tistory.com/
int k;
int temp;
int stack[100020];
int top;
int sum;

void pop() {
	if (top == 0) {
		printf("%s\n", "underflow");
	}
	else {
		top -= 1;
	}
}

void push(int num) {
	top = top + 1;
	stack[top] = num;
}

int main(void) {
	scanf("%d",&k);

	for (int i = 0; i < k; i++) {
		scanf("%d", &temp);
		if (temp == 0) {
			pop();
		}
		else {
			push(temp);
		}
	}

	for (int i = 1; i <= top; i++) {
		sum += stack[i];
	}

	printf("%d\n", sum);
}

문제의 지문은 아래의 링크에서 참고하기 바란다.

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

728x90
반응형
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함