본문 바로가기
1-3. 코딩테스트(2025년 OPEN 예정)/PCCP(코딩전문역량인증)

[PCCP] 자료구조 - 스택

by cogito21_cpp 2024. 12. 14.
반응형

1. 이론

- 스택(stack): 먼저 입력한 데이터를 제일 나중에 꺼냄(FILO: First In Last Out)

- 삽입 연산을 push, 꺼내는 연산을 pop

- 스택 ADT: 삽입(push), 꺼내기/삭제(pop), isFull(), isEmpty(), top(최근 데이터 인덱스), data(데이터 저장공간)

 

(시간복잡도)

- 삽입: O(1)

- 삭제: O(1)

 

(선택시 고려할 점)

- 최근에 삽입한 데이터를 자주 사용하는 경우

 

2. 프로그램 언어별 문법

- 스택 선언 및 초기화

- 스택 접근(top)

- 스택 제어: 삽입(push), 삭제(pop)

 

<C언어>

 

 

<C++>

더보기
#include <stack>

/* 스택 생성 및 초기화 */
stack<자료형> st;

/* 삽입 */
st.push(값); // 요소 삽입

/* 삭제 */
st.pop(); // 마지막 삽입 요소 삭제

/* 변경 */

/* 조회 */
st.top();

/* 전체 조회 */
while (!st.empty()) {
    std::cout << st.top() << std::endl;
    st.pop();
}

/* 기타 메서드 */ 
st.size(); // 스택의 크기 반환
st.empty(); // 비어있다면 true 반환

 

<C#>

 

 

<Java>

 

 

<Python>

더보기
# 스택 생성 및 초기화
st1 = list()
st2 = []
st3 = [1, 2, 3, 4]
st4 = [i for i in range(10)]

# 삽입
st1.append(10)
st1.append(3)
st1.append(2)

# 삭제
st.pop()

# 값 확인
print(f"{st[-1]}"

# 비어있는지 확인
print(f"비어있는지: {len(st) == 0}")

 

<JavaScript>

 

 

 

3. 추천 문제

(Programmers)

- Lv 2: 괄호 회전하기(76502) / 괄호 회전하기(76502) 해설
- Lv 2: 짝지어 제거하기(12973) / 짝지어 제거하기(12973) 해설
- Lv 2: 주식 가격(42584) / 주식 가격(42584) 해설
- Lv 1: 크레인 인형뽑기 게임(64061) / 크레인 인형 뽑기 게임(64061) 해설
- Lv 3: 표 편집(81303) / 표 편집(81303) 해설

- Lv 1: 같은 숫자는 싫어(12906) / 같은 숫자는 싫어(12906) 해설
- Lv 2: 올바른 괄호(12909) / 올바른 괄호(12909) 해설
- Lv 0: 컨트롤 제트(120853) / 컨트롤 제트(120853) 해설

 

(leetcode)

 

 

 

 

반응형