정보처리기사 필기
시험 직전 요약장
판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.
스택·큐·데크와 표기식 계산
원래 이론 →판단 기준
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 작업 | 일반적인 시간 복잡도 | 전제 |
|---|---|---|
스택 push·pop·peek | O(1) | top을 직접 관리 |
큐 enqueue·dequeue | O(1) | front·rear를 직접 관리 |
| 데크의 양끝 삽입·삭제 | O(1) | 원형 배열 또는 적절한 연결 구조 사용 |
| 중위→후위 변환 | O(n) | 각 토큰을 상수 횟수 처리 |
| 전위·후위식 계산 | O(n) | 각 토큰을 한 번 순회 |
스택·큐·데크에서 특정 값을 찾는 작업은 일반적으로 O(n)이다. 끝 연산이 O(1)이라는 사실과 임의 검색도 O(1)이라는 주장은 다르다.
헷갈리는 개념
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 구조 | 삽입 위치 | 삭제 위치 | 처리 순서 |
|---|---|---|---|
| 스택 | top | top | 후입선출(LIFO) |
| 일반 큐 | rear | front | 선입선출(FIFO) |
| 데크 | front 또는 rear | front 또는 rear | 허용한 연산 조합에 따라 달라짐 |
대표 계산·예제
후위식은 왼쪽에서 오른쪽으로 읽으며 피연산자를 스택에 넣는다. 이항 연산자를 만나면 두 값을 꺼내 계산 결과를 다시 넣는다.
right = pop()— 오른쪽 피연산자left = pop()— 왼쪽 피연산자push(left 연산자 right)
뺄셈과 나눗셈은 피연산자 순서를 바꾸면 결과가 달라지므로 특히 주의한다.
후위식 8 2 3 * +의 계산 과정은 다음과 같다.
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 토큰 | 처리 | 스택 상태 |
|---|---|---|
8 | 8을 넣음 | [8] |
2 | 2를 넣음 | [8, 2] |
3 | 3을 넣음 | [8, 2, 3] |
* | 2 × 3 = 6 | [8, 6] |
+ | 8 + 6 = 14 | [14] |
입력을 모두 처리했을 때 스택에 값이 정확히 하나 남아야 정상적인 식이다. 위 식의 결과는 14다. 예를 들어 8 2 /에서 먼저 꺼낸 2가 오른쪽 피연산자이므로 계산은 8 / 2다.
후위식은 이항 연산 직전에 스택 값이 두 개 이상 필요하다. 입력 종료 때 값 하나가 남는 조건만 검사하지 말고 각 연산의 피연산자 부족도 검사한다.
내 최근 연습 오답
현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.
오답 기록을 확인하고 있습니다.