백준 28278번 문제는 스택 자료구조를 이용한 문제이다.
문제
입력 & 출력
풀이
해당 문제는 스택 자료구조를 이해하고 있으면 쉽게 풀 수 있는 문제이다.
먼저 스택을 선언해주고 데이터를 저장해서 출력할 수 있는 StringBuilder를 선언해준다.
첫 번째 줄로 들어오는 명령어의 수를 정수로 받아주고, 숫자 1이 들어왔을 경우 그 다음으로 입력되는 값을 받아서 스택에 저장해야되기 때문에 StringTokenizer를 선언하여 데이터를 나눠줄 수 있게 해준다.
먼저 첫 번째 줄로 들어온 명령어의 수 만큼 반복문을 돌려서 명령어들을 한 줄씩 받아온다.
먼저 1번 명령어가 들어오면 다음으로 입력 받는 숫자를 스택에 push() 한다.
2번 명령어가 들어오면 스택이 비어있는지 확인하고 lastElement() 메서드를 사용하여 스택의 맨 위의 정수를 StringBuilder에 추가하고 그 다음 해당 값을 pop() 한다. 스택이 비어 있다면 -1을 추가한다.
3번 명령어가 들어오면 size() 메서드를 사용하여 스택에 들어있는 데이터의 갯수를 추가해준다.
4번 명령어가 들어오면 스택이 비어있는지 확인하고 비어있으면 1을 아니면 0을 추가해준다.
5번 명령어가 들어오면 2번과 마찬가지로 맨 위의 정수를 추가하고 pop() 해준다. 스택이 비어있으면 -1을 추가해준다.
반복문이 끝나면 StringBuilder를 출력하면 된다.
해당 문제는 스택을 이해하고 있는지, 스택과 관련된 메서드를 활용할 줄 아는지 물어보는 문제인 것 같다.
'알고리즘 공부' 카테고리의 다른 글
백준 실버4 18258번(자바) (0) | 2023.09.04 |
---|---|
백준 실버4 12789번(자바) (2) | 2023.09.04 |
백준 실버4 9012번(자바) (2) | 2023.09.03 |
백준 실버4 4949(자바) (0) | 2023.09.03 |
백준 실버4 10773번(자바) (0) | 2023.08.29 |