프로그래밍기능사 · 프로그래밍 언어 과목
프로그래밍기능사 프로그래밍 기초 개념 정리
중요도 ★★★★☆ · 30% (추정)
AI가 새로 쓴 글 가운데, 작성과 분리된 AI 검증(다시 읽고 사실·수치 확인)을 통과한 단원만 싣습니다. 틀린 곳을 발견하면 알려 주세요.
개요
이 단원은 어느 프로그래밍 언어를 쓰든 공통으로 알아야 하는 바탕을 다룹니다. 값을 담는 자료형, 값을 계산하는 연산자, 실행 순서를 바꾸는 제어문, 그리고 자료를 모아 두는 기본 자료구조가 차례로 나옵니다. 코드 읽기 문제를 풀기 위한 준비 단계라고 생각하면 됩니다.
연산자에서는 나눗셈을 특히 조심해야 합니다. C 와 자바에서는 정수끼리 / 로 나누면 소수점 아래를 버린 몫만 남고(파이썬은 / 가 소수까지, // 가 몫만 구합니다), 나머지 연산자(%)는 나누고 남은 값을 돌려줍니다. 비교 연산자는 참과 거짓을 돌려주고, 논리 연산자 AND 는 둘 다 참일 때만, OR 는 하나라도 참이면 참이 됩니다. 연산자마다 계산 순서(우선순위)가 정해져 있어서, 곱셈과 나눗셈이 덧셈과 뺄셈보다 먼저 계산됩니다.
제어문은 조건에 따라 길을 나누는 if 문과, 같은 일을 되풀이하는 for·while 같은 반복문으로 나뉩니다. break 는 반복을 그 자리에서 끝내고, continue 는 이번 차례만 건너뛰고 다음 반복으로 넘어갑니다. 자료구조에서는 스택과 큐를 먼저 익혀 두세요. 스택은 나중에 넣은 것이 먼저 나오고, 큐는 먼저 넣은 것이 먼저 나옵니다.
핵심 개념
정수 나눗셈과 나머지
C·자바에서 정수끼리 나누면 소수점 아래를 버린 몫만 남습니다. 나머지 연산자(%)는 나누고 남은 값을 돌려줍니다. 예를 들어 C·자바에서 7 / 2 는 3, 7 % 2 는 1 입니다(파이썬은 7 // 2 가 3).
외우는 요령% 2 의 결과가 0 이면 짝수, 0 이 아니면 홀수입니다.
논리 연산자
AND 는 양쪽이 모두 참일 때만 참이고, OR 는 한쪽이라도 참이면 참입니다. NOT 은 참과 거짓을 뒤집습니다.
외우는 요령AND 는 '둘 다', OR 는 '하나라도'.
break 와 continue
break 는 반복문을 그 자리에서 완전히 빠져나옵니다. continue 는 이번 차례의 남은 부분만 건너뛰고 다음 반복을 계속합니다.
외우는 요령break 는 '그만', continue 는 '이번만 통과'.
스택
한쪽 끝으로만 넣고 꺼내는 자료구조입니다. 나중에 넣은 것이 먼저 나옵니다(LIFO). 넣는 것을 push, 꺼내는 것을 pop 이라고 합니다.
외우는 요령접시를 쌓아 두면 맨 위 접시부터 꺼냅니다.
큐
한쪽 끝으로 넣고 반대쪽 끝으로 꺼내는 자료구조입니다. 먼저 넣은 것이 먼저 나옵니다(FIFO).
외우는 요령은행 번호표 줄처럼 먼저 온 사람이 먼저 나갑니다.
자주 나오는 포인트
- 정수 나눗셈의 몫과 % 나머지를 함께 구하는 문제를 대비하세요.
- 스택에 push·pop 을 여러 번 한 뒤 남은 값이나 꺼낸 순서를 묻습니다.
- break 와 continue 를 바꿔 놓은 선지를 조심하세요.
- 곱셈·나눗셈이 덧셈·뺄셈보다 먼저 계산된다는 우선순위를 확인합니다.
헷갈리는 것 비교: 스택과 큐
| 구분 | 스택 | 큐 |
|---|---|---|
| 꺼내는 순서 | 나중에 넣은 것부터 (LIFO) | 먼저 넣은 것부터 (FIFO) |
| 넣고 빼는 곳 | 한쪽 끝 | 넣는 끝과 빼는 끝이 다름 |
| 생활 속 예 | 쌓아 둔 접시 | 번호표 대기 줄 |
대표 문제 3개
검수를 마친 예상문제 가운데 이 단원의 대표 문제입니다.
문제 1. 스택(stack)에 A, B, C 를 차례로 넣은 뒤 자료를 하나 꺼내면 나오는 것은?
- ① B
- ② C
- ③ A
- ④ 꺼낼 수 없다
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ② C
핵심: 스택은 나중에 넣은 것이 먼저 나온다(LIFO)
스택은 접시를 쌓는 것과 같습니다. 맨 나중에 올린 접시를 맨 먼저 집습니다(LIFO, 후입선출).
- 넣은 순서: A → B → C
- 맨 위에 있는 것: C
- 하나 꺼내면 C 가 나옵니다.
틀린 선지
- ① B: B 는 C 를 꺼낸 다음에 나옵니다.
- ③ A: A 는 가장 먼저 넣었으므로 큐(queue)라면 먼저 나오지만, 스택에서는 가장 늦게 나옵니다.
- ④ 꺼낼 수 없다: 자료가 들어 있으므로 꺼낼 수 있습니다.
문제 2. 먼저 들어온 자료가 먼저 나가는(FIFO) 자료구조는?
- ① 큐
- ② 트리
- ③ 그래프
- ④ 스택
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ① 큐
핵심: 큐는 먼저 들어온 것이 먼저 나간다(FIFO)
큐(queue)는 은행 창구의 줄서기와 같습니다. 먼저 줄을 선 사람이 먼저 업무를 봅니다. 이것을 FIFO(선입선출)라고 합니다.
틀린 선지
- ② 트리: 트리는 부모·자식 관계로 자료를 나뭇가지처럼 연결한 구조입니다.
- ③ 그래프: 그래프는 점(정점)과 선(간선)으로 관계를 나타내는 구조입니다.
- ④ 스택: 스택은 나중에 들어온 자료가 먼저 나가는 구조(LIFO)입니다.
문제 3. 다음 C 프로그램의 출력 결과는? printf("%d", 2 + 3 * 4);
- ① 14
- ② 20
- ③ 24
- ④ 9
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ① 14
핵심: 곱셈·나눗셈이 덧셈·뺄셈보다 먼저 계산된다
수학과 같이 곱셈이 덧셈보다 먼저 계산됩니다.
- 3 * 4 = 12
- 2 + 12 = 14
- 출력: 14
틀린 선지
- ② 20: 덧셈을 먼저 계산한 값입니다. 곱셈이 덧셈보다 먼저입니다.
- ③ 24: 2 × 3 × 4 처럼 모두 곱한 값입니다.
- ④ 9: 2 + 3 + 4 처럼 모두 더한 값입니다.