알고리즘 공부

백준 실버4 28278번(자바)

Hosae905 2023. 9. 3. 20:38

백준 28278번 문제는 스택 자료구조를 이용한 문제이다.

 

문제


 

입력 & 출력


 

풀이


해당 문제는 스택 자료구조를 이해하고 있으면 쉽게 풀 수 있는 문제이다. 

먼저 스택을 선언해주고 데이터를 저장해서 출력할 수 있는 StringBuilder를 선언해준다.

첫 번째 줄로 들어오는 명령어의 수를 정수로 받아주고, 숫자 1이 들어왔을 경우 그 다음으로 입력되는 값을 받아서 스택에 저장해야되기 때문에 StringTokenizer를 선언하여 데이터를 나눠줄 수 있게 해준다.

 

먼저 첫 번째 줄로 들어온 명령어의 수 만큼 반복문을 돌려서 명령어들을 한 줄씩 받아온다.

먼저 1번 명령어가 들어오면 다음으로 입력 받는 숫자를 스택에 push() 한다.

2번 명령어가 들어오면 스택이 비어있는지 확인하고 lastElement() 메서드를 사용하여 스택의 맨 위의 정수를 StringBuilder에 추가하고 그 다음 해당 값을 pop() 한다. 스택이 비어 있다면 -1을 추가한다.

3번 명령어가 들어오면 size() 메서드를 사용하여 스택에 들어있는 데이터의 갯수를 추가해준다.

4번 명령어가 들어오면 스택이 비어있는지 확인하고 비어있으면 1을 아니면 0을 추가해준다.

5번 명령어가 들어오면 2번과 마찬가지로 맨 위의 정수를 추가하고 pop() 해준다. 스택이 비어있으면 -1을 추가해준다.

반복문이 끝나면 StringBuilder를 출력하면 된다.

 

해당 문제는 스택을 이해하고 있는지, 스택과 관련된 메서드를 활용할 줄 아는지 물어보는 문제인 것 같다.