728x90
https://www.acmicpc.net/problem/10828
문제 풀이
C++
#include<stdio.h>
#include<string.h>
int stack[100001];
int main()
{
int n, i, key = -1;
char input[6];
scanf("%d", &n);
for(i = 0; i < n; i++) {
scanf("%s", input);
if(strcmp(input, "push") == 0) {
scanf("%d", &stack[++key]);
}
else if(strcmp(input, "pop") == 0) {
if(key == -1) printf("-1\n");
else printf("%d\n", stack[key--]);
}
else if(strcmp(input, "size") == 0) {
printf("%d\n", key+1);
}
else if(strcmp(input, "empty") == 0) {
if(key == -1) printf("1\n");
else printf("0\n");
}
else if(strcmp(input, "top") == 0) {
if(key == -1) printf("-1\n");
else printf("%d\n", stack[key]);
}
}
return 0;
}
자바
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] arr = new int[n];
int size = 0;
for (int i = 0; i < n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
switch (st.nextToken()) {
case "push":
arr[size] = Integer.parseInt(st.nextToken());
size++;
break;
case "pop":
if (size == 0) {
System.out.println(-1);
}
else {
System.out.println(arr[size - 1]);
size--;
}
break;
case "size":
System.out.println(size);
break;
case "empty":
if (size == 0) {
System.out.println(1);
}
else {
System.out.println(0);
}
break;
case "top":
if (size == 0) {
System.out.println(-1);
}
else {
System.out.println(arr[size - 1]);
}
break;
default:
break;
}
}
}
}
예전에 자바로 풀어둔 게 있길래 정리 겸 같이 업로드..
'코테 > 백준' 카테고리의 다른 글
[백준] 10798 세로읽기 - C++ (0) | 2023.07.19 |
---|---|
[백준] 17608 막대기 - C++ (0) | 2023.07.18 |
[백준] 19941 햄버거 분배 - C++ (0) | 2023.07.18 |
[백준] 10163 색종이 - C++ (0) | 2023.07.18 |
[백준] 25400 제자리 - C++ (0) | 2023.07.14 |