반응형

수능 수학, 코딩의 눈으로 직관 뚫기

[코딩X수학 개념 #6] 집합과 리스트 : 수능 변별력 문항 '조건을 만족하는 집합'을 정복하는 눈

 

안녕하세요! 조건문(If)과 반복문(For)을 엮어 수열의 합($\sum$) 메커니즘을 완벽하게 꿰뚫었던 지난 5화 내용, 잘 기억하고 계실 겁니다.

오늘 6화부터는 단순한 계산 단계를 넘어, 수능 수학 4점짜리 변별력 문항을 만났을 때 조건을 완벽하게 통제하는 힘을 길러보겠습니다. 그 대망의 첫 단추는 고등학교 수학 하(下)의 시작이자, 모의고사 단골 표현인 '집합(Set)'입니다.

수능 시험지를 펼치면 항상 우리를 반기는 문장이 있습니다.
"집합 $A = \{ x \mid \text{조건 } p(x) \}$ 가 다음 조건을 만족할 때..."
많은 학생이 이 조건제시법 표현 뒤에 숨겨진 진짜 원소들을 찾아내지 못해 포기하곤 합니다. 하지만 코딩에서 데이터를 한 줄로 예쁘게 묶어 관리하는 리스트(List)의 작동 원리를 빌려오면, 수능 출제자가 꼬아놓은 집합 조건이 한눈에 해체되는 마법을 경험할 수 있습니다.


1 수능 조건제시법 $A = \{ x \mid p(x) \}$의 본질은 '필터링 알고리즘'이다

수학에서 집합을 표현할 때, 원소를 일일이 나열하는 원소나열법($A = \{2, 4, 6, 8\}$)이 있고, 조건을 걸어 표현하는 조건제시법($A = \{ x \mid x \text{는 } 10 \text{ 이하의 짝수} \}$)이 있습니다. 당연히 수능에는 원소나열법이 나오지 않습니다. 출제자는 무조건 조건제시법으로 원소를 꽁꽁 숨겨두죠.

이 조건제시법 기호($\{ \ \mid \ \}$)를 코딩의 시각으로 번역하면 정확히 어떤 구조일까요? 전체 데이터 후보군을 **반복문(For)**으로 하나씩 훑으면서, 출제자가 제시한 명제 조건이 참인지 **조건문(If)**으로 감시하여 합격한 원소만 **리스트(주머니)**에 쏙 집어넣는 '데이터 필터링 알고리즘'입니다.

수학의 조건제시법 : $A = \{ x \mid x \in U \text{ 이고 } p(x) \text{ 가 참이다} \}$
코딩의 리스트 필터링 : 전체 주머니(U)에서 하나씩 꺼내(for x), 조건(if p(x))을 통과한 녀석만 새 주머니(A)에 담아라!


2 실전 분석: 수능 모의고사 단골 '집합의 원소 개수' 추적하기

다음과 같은 수능형 문항을 만났다고 가정해 봅시다. 머릿속으로 컴퓨터가 조건에 맞는 원소를 어떻게 추적해 들어가는지 그 논리 회로를 따라가 보세요.

"전체집합 $U = \{ x \mid x \text{는 } 30 \text{ 이하의 자연수} \}$ 에 대하여,
새로운 집합 $A = \{ x \mid x \in U, \ \sqrt{x} \text{가 정수이거나 } x \text{는 } 6 \text{의 배수} \}$ 일 때, 집합 $A$의 원소의 개수 $n(A)$를 구하시오."

상위권 학생들의 머릿속은 이미 이 문제를 아래의 파이썬 코드처럼 '빈 주머니를 만들고 하나씩 대입해서 판별하는 과정'으로 엄밀하게 분리해 냅니다.

# [단계 1] 조건에 맞는 원소들을 주어 담을 대괄호모양의 빈 리스트(주머니)를 준비합니다.
A = []

# [단계 2] 전체집합 U의 원소 후보군(1부터 30까지의 자연수)을 순서대로 꺼냅니다.
for x in range(1, 31):
    
    # [단계 3] 출제자가 제시한 조건 검사 (루트 x가 정수이거나, 6의 배수인가?)
    # x**0.5는 루트 x를 뜻하며, % 1 == 0 은 소수점이 없는 정수인지 판별하는 코딩 식입니다.
    if (x**0.5) % 1 == 0 or x % 6 == 0:
        
        # 조건을 만족(참)하면 주머니 A에 원소를 추가(append)합니다.
        A.append(x)

# 수능에서 물어본 n(A), 즉 리스트의 길이(len)를 출력합니다.
print("조건을 만족하는 집합 A의 원소들:", A)
print("최종 정답 n(A) = ", len(A))

🧠 코딩적 엄밀함이 수능 점수로 직결되는 이유

① 교집합 중복 에러 차단 (or 조건의 통제) :
위 문제를 그냥 손으로 풀다 보면 제곱수 집합과 6의 배수 집합을 각각 구한 뒤, 두 조건에 동시에 걸리는 교집합 원소(예: 36은 범위 밖이지만 다른 문제에서 발생할 수 있는 중복 원소)를 중복해서 세는 대참사가 자주 일어납니다. 하지만 코딩의 or 연산 알고리즘은 1부터 30까지의 원소를 '단 한 번씩만' 검사하며 조건에 맞으면 주머니에 집어넣기 때문에, 중복 카운트라는 개념 자체가 발생하지 않습니다. 경우의 수 문제에서 '중복 없이' 세는 완벽한 훈련이 됩니다.

② 수능 4점짜리를 관통하는 '케이스 분류'의 힘 :
수능 고득점을 가르는 핵심 키워드는 **'철저한 케이스 분류(Case Study)'**입니다. 전체집합이라는 거대한 데이터군 속에서, 출제자의 필터링 조건(if)에 부합하는 원소들을 빠짐없이 추려내는 리스트적 사고방식을 탑재하면, 서술형 문제를 읽자마자 예외 상황을 완벽히 통제하는 강력한 메커니즘이 장착됩니다.


🎯 6화 수능 도약을 위한 핵심 노트

1. 수능에 출제되는 조건제시법은 전체 후보군을 검사하는 'For + If 필터링 알고리즘'과 완전히 일치한다.
2. 코딩의 리스트(List) 구조를 떠올리며 원소를 추적하면, 교집합의 중복이나 조건 누락을 본능적으로 차단하게 된다.
3. 데이터 묶음을 깐깐하게 다루는 버릇이 고난도 수능 문항의 핵심인 '빈틈없는 케이스 분류 능력'의 밑거름이 된다!

다음 시간(7화) 예고:
집합 주머니 속에 원소들을 예쁘게 채워 넣는 법을 알았습니다. 그렇다면 수학 교과과정에서 이 원소들을 가로축과 세로축으로 엮어 만든 거대한 2차원의 세계, 수능의 킬러 문항이 가장 사랑하는 단골 주제는 무엇일까요? 바로 [좌표평면과 격자점 세기]입니다. 2차원 배열 구조를 통해 수1, 수2 그래프 문제의 원소를 샅샅이 잡아내는 비법을 7화에서 파헤쳐 보겠습니다. 다음 시간에 만나요!

반응형

+ Recent posts