https://www.acmicpc.net/problem/1874
1874번: 스택 수열
1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.
www.acmicpc.net
스택을 이용한 문제
push를 할때 '+'가 배열에 들어가고 pop을 할때 '-'가 배열에 들어간다는 점을 이용하여 문제를 풀었다.
push함수는 스택에 값을 입력해주고 symbol이라는 char 배열에 '+'를 넣어준다.
pop함수는 index의 값을 1줄여주고 symbol에 '-'를 넣어준다.
top은 스택의 가장 최상위에 있는 값을 리턴해준다.
j가 1부터 n까지 push(j)를 통해 스택에 j를 넣어줌
top과 arr[i]의 값이 같고 스택의 index>-1 동안 pop해주고 i++해줌
i++해주는 이유는 그다음의 원소와 비교해야 되기 때문
index>-1 동안 하는 이유는 index== -1이면 스텍이 비었다는 뜻이고 이때 접근하게 되면 오류가 발생함.
j for문을 다 돌고 나서 index!=-1이면 이것은 스택의 값이 남아있다는 뜻으로 수열 만드는게 불가능 하다는 뜻
index==-1이면 이것은 스택 수열이 제대로 만들어 졌다는 뜻
https://www.acmicpc.net/problem/1874
1874번: 스택 수열
1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.
www.acmicpc.net
스택을 이용한 문제
push를 할때 '+'가 배열에 들어가고 pop을 할때 '-'가 배열에 들어간다는 점을 이용하여 문제를 풀었다.
push함수는 스택에 값을 입력해주고 symbol이라는 char 배열에 '+'를 넣어준다.
pop함수는 index의 값을 1줄여주고 symbol에 '-'를 넣어준다.
top은 스택의 가장 최상위에 있는 값을 리턴해준다.
j가 1부터 n까지 push(j)를 통해 스택에 j를 넣어줌
top과 arr[i]의 값이 같고 스택의 index>-1 동안 pop해주고 i++해줌
i++해주는 이유는 그다음의 원소와 비교해야 되기 때문
index>-1 동안 하는 이유는 index== -1이면 스텍이 비었다는 뜻이고 이때 접근하게 되면 오류가 발생함.
j for문을 다 돌고 나서 index!=-1이면 이것은 스택의 값이 남아있다는 뜻으로 수열 만드는게 불가능 하다는 뜻
index==-1이면 이것은 스택 수열이 제대로 만들어 졌다는 뜻