10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
[문제]
정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.
명령은 총 다섯 가지이다.
push X : 정수 X를 스택에 넣는 연산이다.
pop : 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
size : 스택에 들어있는 정수의 개수를 출력한다.
empty : 스택이 비어있으면 1, 아니면 0을 출력한다.
top : 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
<알고리즘 분류> 자료구조, 스택
[input]
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다.
둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다.
주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다.
문제에 나와있지 않은 명령이 주어지는 경우는 없다.
[output]
출력해야하는 명령이 주어질 때마다, 한 줄에 하나씩 출력한다.


[풀이 방법]
-
Scanner 사용하였을 때 시간 초과 뜨며, BufferedReader+BufferedWriter 사용
-
Stack 이름의 새로운 클래스 생성하여 스택 관련 함수 정의 해줌
-
명령의 개수 입력받아 변수 N에 저장
-
N개의 명령을 받아 명령 수행
-
Stack 클래스의 객체를 생성하여 각 명령에 해당하는 함수 호출한 후 내용 출력
실패 코드 - 런타임 에러(main class Main) + 시간 초과


- 처음에 package 한 내용을 포함하여 제출해서 런타임 에러 발생
- Scanner로 해보고 싶어서 해보았는데 시간 초과 발생
실패 코드 - 그냥 틀린 코드


- 클래스 사용하지 않고 내부에서 모두 할 수 있도록 작성했지만 틀린 코드라고 이야기 해줌
성공 코드


스택 문제는 처음 풀어보는거라 생각한 대로 구현하면 될 줄 알았는데 ,
생각보다 엄청 틀리고 오래 걸려서 참고해서 해결한 문제였다 ,, 또륵
열심히 하자 !!!!!
'Android ᙏ̤̫͚ > 차근차근 JAVA' 카테고리의 다른 글
[백준 10799번] 쇠막대기 (0) | 2021.02.11 |
---|---|
[백준 9012번] 괄호 (0) | 2021.02.11 |
[백준 11652번] 카드 (0) | 2021.02.10 |
[백준 11004번] K번째 수 (0) | 2021.02.10 |
[백준 10989번] 수 정렬하기 3 (0) | 2021.02.10 |