티스토리 뷰
728x90
반응형
백준 온라인 저지(BOJ) 28278번 스택 2
https://www.acmicpc.net/problem/28278
28278번: 스택 2
첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력을 요구하는 명령은 하나 이상 주어진다.
www.acmicpc.net
* 사용언어 : C언어, C++
1. 문제
정수를 저장하는 스택을 구현하여 주어진 5가지 명령(push, pop, len, isEmpty, top)을 처리
2. 풀이
기본적인 stack 자료 구조 문제입니다.
stack 특성에 따라 LIFO(Last In First Out)으로 구조를 만들면 됩니다.
단순하게 배열의 마지막 index를 기억한 뒤 넣고 빼게 하도록 만들었습니다.
size 확인 시 비교 연산자(>=, == 등)를 쓰지 않기 위해 0 base가 아닌 1 base로 구현했습니다.
입력이 최대 999,999개 주어질 수 있으므로 배열의 크기는 최소 1,000,000이어야 합니다.
(출력을 요구하는 명령이 하나 이상 주어지므로, 명령 1(push)은 최대 999,999번)
(그리고 1 base이므로 +1)
3. 코드
#ifndef _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
#endif
/*
28278_스택
5020KB 232ms
*/
#include <cstdio>
const int LM = 1000000;
int st[LM], size, n, op, x;
int main() {
#ifdef _WIN32
freopen("input.txt", "r", stdin);
#endif // _WIN32
scanf("%d", &n);
while (n--) {
scanf("%d", &op);
switch (op) {
case 1:
scanf("%d", &x);
st[++size] = x;
break;
case 2:
if (size) printf("%d\n", st[size--]);
else printf("-1\n");
break;
case 3:
printf("%d\n", size);
break;
case 4:
if (!size) printf("1\n");
else printf("0\n");
break;
case 5:
if (size) printf("%d\n", st[size]);
else printf("-1\n");
break;
}
}
return 0;
}
728x90
반응형
'개발자 > 문제풀이 (C언어)' 카테고리의 다른 글
[백준/BOJ] 9012번 괄호 (C/C++) (0) | 2023.11.10 |
---|---|
[백준/BOJ] 10773번 제로 (C/C++) (0) | 2023.11.10 |
[백준/BOJ] 13909번 창문 닫기 (C/C++) (0) | 2023.11.07 |
[백준/BOJ] 17103번 골드바흐 파티션 (C/C++) (0) | 2023.11.07 |
[백준/BOJ] 4948번 베르트랑 공준 (C/C++) (0) | 2023.11.07 |
댓글
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- JUNGOL
- 긴 자리 덧셈 뺄셈
- AdSendse
- 삼성전자
- 관계가상처가되기전에
- 당신도느리게나이들수있습니다
- 인간본성불패의법칙
- 정세현의통찰
- 나의첫죽음학수업
- 자료구조
- 정올
- 유연함의힘
- 여가포인트
- 독서 감상평
- 문현공
- 안전운전특약
- 영화감상평
- 센터독서클럽
- 알고리즘
- 독서감상평
- 호암의마지막꿈
- 최재천의공부
- 동탄에듀센터2
- 시대예보
- 쿠프마케팅
- 나는늘잘해야한다고생각한다
- 긴 자리 곱셈
- 세상을 읽는 새로운 언어 빅데이터
- 자동차보험
- 동탄에듀센터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함