깃허브:
https://github.com/MSIQOC/BOJ/blob/master/b10828_%EC%8A%A4%ED%83%9D.java
https://www.acmicpc.net/problem/10828
간단하게 스택을 직접 구현해보는 문제였다.
코드에서는 스택을 나타내는 1차원 배열 stack 변수와 스택에 들어있는 수의 개수를 나타내는 size 변수를 사용했다.
문제점:
1. 사전에 System.out.println() 함수를 사용해서 출력해줬지만, 시간초과의 에러가 계속해서 났다.
=> BufferedWriter를 사용해주니 해결됐다. 시간초과 문제를 해결하기 위해서라면 출력할 때 System.out.println() 대신 BufferedWriter를 쓰는 법을 익히는 것도 중요할 것 같다. 내 코드에서는 bw로 BufferedWriter 변수를 선언해줬다면 다 쓰고 나서 마지막에 bw.flush()를 통해서 버퍼를 비워주는 것이 굉장히 중요하단걸 알았다.
2. string을 비교할 때, ==를 쓰면 비교가 잘 되지 않는다.
=>구글링을 통해서 알아봤지만, string을 비교할려면 == 대신 equals 함수를 써서 비교해줘야하는 것 같다.
아직 자바에 익숙하지는 않아서 많이 배워야하는 부분인 것 같다.
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
import java.io.*;
import java.util.Scanner;
import java.util.StringTokenizer;
public class b10828_스택 {
static int size=0;
static int stack[] = new int[10000];
public static void main(String args[]) throws IOException {
Scanner sc = new Scanner(System.in);
int n;
n = sc.nextInt(); //n에 입력받기
//sc.nextLine(); //sc의 버퍼를 클리어해주기 위해서
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); //값읽기
for (int i=0; i<n; ++i) {
String a = sc.next();
if(a.equals("push")) { //자바에서 스트링을 비교할 땐 주소값 변경의 문제 때문에 == 대신에 equals 메소드를 사용한다.
int m = Integer.parseInt(sc.next());
//System.out.println("m:" + m);
stack[size] = m;
//System.out.println("stack:" + stack[size]);
++size;
}
else if(a.equals("top")) {
if(size==0) {
bw.write("-1\n");
}
else{
bw.write(stack[size-1]+"\n");
}
}
else if(a.equals("pop")) {
if(size==0) {
bw.write("-1\n");
}
else {
//System.out.println(stack[size-1]);
bw.write(stack[size-1]+"\n");
--size;
}
}
else if(a.equals("size")) {
bw.write(size+"\n");
}
else if(a.equals("empty")) {
if(size==0)
bw.write("1\n");
else
bw.write("0\n");
}
}
bw.flush();
}
}
|
'백준 풀이' 카테고리의 다른 글
백준 9012 - 괄호 (0) | 2021.01.10 |
---|---|
백준 17413 - 단어뒤집기 2 (0) | 2021.01.09 |
백준 10866 - 덱 (0) | 2021.01.06 |
백준 9093 - 단어 뒤집기 (0) | 2021.01.04 |
백준 10845-큐 (0) | 2021.01.04 |