정보처리기사공부 방법

[필기·실기] 정보처리기사 C·Java·Python·SQL 실행형 문제 풀이법

작성자 자격증3001 운영자

한 줄 안내: 코드와 SQL 문제는 머릿속으로 한 번에 계산하지 말고 입력, 중간 상태와 최종 결과를 분리해 추적하세요.

프로그램 문제를 풀기 전 확인할 것

  1. 언어와 실행 환경을 확인합니다.
  2. 입력값과 변수의 초기값을 적습니다.
  3. 조건문이 참이 되는 시점과 반복 횟수를 표시합니다.
  4. 함수 호출 전후의 인수와 반환값을 구분합니다.
  5. 출력 형식, 자료형 변환과 연산 순서를 마지막에 확인합니다.

변수 추적표를 만듭니다

실행 단계 / 조건 결과 / 바뀐 변수 / 출력값

모든 변수를 매번 적기보다 실제로 값이 달라지는 변수만 기록합니다. 배열 인덱스, 증감 연산자와 반복문의 시작·종료 조건은 한 줄씩 따로 확인합니다.

C 반복문을 추적하는 예시

int sum = 0;
for (int i = 1; i <= 3; i++) {
    sum += i;
}
printf("%d", sum);
반복 i sum 계산 반복 뒤 sum
1회 1 0 + 1 1
2회 2 1 + 2 3
3회 3 3 + 3 6

조건 i <= 3이므로 세 번 반복하고 최종 출력은 6입니다. 문제를 풀 때도 초기값과 각 반복 뒤의 값을 분리해 적습니다.

언어별로 자주 확인할 부분

  • C: 포인터가 가리키는 대상, 배열 인덱스, 정수 연산과 증감 시점
  • Java: 상속·오버라이딩, 참조형, 예외 흐름과 메서드 호출 대상
  • Python: 자료형의 변경 가능 여부, 슬라이싱, 반복 범위와 들여쓰기

언어가 다르면 같은 모양의 표현도 결과가 달라질 수 있습니다. 다른 언어의 습관으로 판단하지 말고 문제에서 지정한 언어의 규칙으로 확인합니다.

Java와 Python은 핵심 규칙을 한 줄씩 검증합니다

Java 오버라이딩 예시

class Parent { String name() { return "P"; } }
class Child extends Parent {
    @Override String name() { return "C"; }
}
Parent ref = new Child();
System.out.print(ref.name());

참조 변수의 선언형은 Parent이지만 실제 객체는 Child이고 메서드가 오버라이딩되어 있으므로 출력은 C입니다.

Python 슬라이싱 예시

values = [1, 2, 3, 4]
print(values[1:4:2])

인덱스 1부터 4 직전까지 2칸씩 선택하므로 인덱스 1과 3의 값인 [2, 4]가 출력됩니다.

SQL은 결과 행을 직접 만듭니다

  1. FROM과 JOIN으로 만들어지는 행을 확인합니다.
  2. WHERE 조건으로 제외되는 행을 표시합니다.
  3. GROUP BY의 그룹과 집계값을 계산합니다.
  4. HAVING으로 제외되는 그룹을 확인합니다.
  5. SELECT 결과 열과 ORDER BY 순서를 마지막에 적용합니다.

NULL은 일반 값과 같은 방식으로 비교하지 않습니다. 문제에 사용된 DBMS나 SQL 방언이 명시되어 있다면 그 기준을 우선합니다.

LEFT JOIN과 COUNT를 확인하는 SQL 예시

member에는 (1, '민수'), (2, '지수')가 있고, score에는 (1, 80), (1, 90)만 있다고 가정합니다.

SELECT m.id, m.name, COUNT(s.score) AS score_count
FROM member AS m
LEFT JOIN score AS s ON s.member_id = m.id
GROUP BY m.id, m.name
ORDER BY m.id;
id name score_count
1 민수 2
2 지수 0

LEFT JOIN은 점수가 없는 지수의 행도 남깁니다. 그 행의 s.score는 NULL이고 COUNT(s.score)는 NULL을 세지 않으므로 결과는 0입니다. COUNT(*)를 쓰면 남아 있는 조인 행을 세어 결과가 달라질 수 있습니다.

검증을 학습으로 연결합니다

직접 실행했을 때 예상과 결과가 다르면 정답만 바꾸지 말고 처음 달라진 단계에 표시하세요. 다음 회독에서는 전체 코드를 다시 외우는 대신 그 단계부터 재현합니다.

필기 오답 분류 방법 · 오류·해설 제보 방법

실행형 문제 학습 기준 확인일: 2026년 8월 29일 · 자격증3001 운영자

학습자 답변

답변 0개

승인된 답변만 공개됩니다.

아직 공개된 답변이 없습니다.

알고 있는 내용이 있다면 첫 답변을 남겨 주세요.