수능 수학, 코딩의 눈으로 직관 뚫기
[코딩X수학 개념 #7] 2차원 리스트와 격자점 : 수능 준킬러 '정수 좌표 개수 세기'를 단숨에 찢는 법
안녕하세요! 조건제시법이라는 수학적 기호가 사실은 For문과 If문이 결합된 '필터링 알고리즘'이었음을 파헤쳤던 지난 6화 내용, 다들 신선하셨을 겁니다. 집합 주머니(리스트)를 단단히 쥐었다면, 이제 수능 수학에서 가장 악명 높은 '노가다 유도형' 준킬러 주제를 정복하러 갈 시간입니다.
수학Ⅰ 수열 단원이나 수학Ⅱ 함수 그래프 단원에서 4점짜리로 단골 출제되는 "부등식 영역 내부의 점 중 $x$좌표와 $y$좌표가 모두 정수인 점(격자점)의 개수를 구하시오"라는 문제를 본 적이 있을 것입니다. 시험장에서 이 문제를 만나면 대부분의 학생이 일일이 손으로 모눈종이에 점을 찍다가 숫자를 한두 개 빼먹어 허무하게 틀리곤 합니다.
하지만 코딩에서 가로축과 세로축의 평면 세계를 다루는 2차원 리스트와 이중 반복문(Nested Loop)의 논리를 탑재하면, 이 복잡한 격자점 세기 문항이 자로 잰 듯 명쾌한 구조적 연산으로 탈바꿈하게 됩니다. 수능 시험장에서 실수를 완벽하게 제로(0)로 만드는 그 완벽한 시각을 선물해 드리겠습니다.
1 좌표평면 $(x, y)$와 코딩의 이중 반복문은 쌍둥이 형제다
수학에서 가로축 $x$와 세로축 $y$로 이루어진 좌표평면은 점들의 모임입니다. 코딩에서는 이 평면을 행(Row)과 열(Column)로 이루어진 2차원 리스트(배열)로 정의합니다.
좌표평면 위에 흩어진 수많은 정수 점들을 컴퓨터에게 빠짐없이 훑으라고 지시할 때 사용하는 치트키가 바로 '이중 반복문(반복문 속에 반복문 넣기)'입니다. 가로축 반복문이 돌아가는 동안, 세로축 반복문이 내부에서 바쁘게 돌아가며 평면의 모든 격자점을 샅샅이 스캔하는 방식이죠.
수학의 평면 스캔 : $x=1$일 때 $y$를 아래부터 위까지 세고, $x=2$일 때 다시 $y$를 세고...
코딩의 이중 루프 :
for x in range(1, 10): (바깥쪽 루프: 가로축 이동)
for y in range(1, 10): (안쪽 루프: 세로축 수직 스캔)
2 실전 분석: 무조건 출제되는 곡선 내부 격자점 세기 기출 유형
실제 수능 모의고사 준킬러 문제 수준으로 변형된 다음 격자점 문항을 읽고, 상위권 학생들이 머릿속으로 어떻게 '이중 반복문 필터링'을 돌리는지 확인해 보세요.
곡선($y = x^2 - 2x + 3$)의 경계선 아래쪽에 깔려있는 정수 점들을 단 하나도 놓치지 않고 완벽하게 골라내는 파이썬 알고리즘 회로입니다.
# 정수 좌표 점들을 담을 빈 주머니를 만듭니다. grid_points = [] # [바깥쪽 For문] x좌표를 1부터 5까지 차례대로 고정합니다. (range 특성상 끝값+1인 6 지정) for x in range(1, 6): # 현재 x 위치에서 함수 y의 최댓값(경계선 경계)을 계산합니다. max_y = x**2 - 2*x + 3 # [안쪽 For문] y좌표를 0부터 max_y까지 수직으로 훑으며 정수 점을 찾습니다. # 정수 범위를 다루기 위해 int로 변환해 줍니다. for y in range(0, int(max_y) + 1): # 발견한 정수 쌍 (x, y)를 리스트 주머니에 저장합니다. grid_points.append((x, y)) # 최종 수능 정답: 조건에 부합하는 정수 점의 총 개수 print("영역 내부의 정수 좌표 점들:", grid_points) print("최종 정답 개수:", len(grid_points))
🧠 이 코딩 로직이 수능 시험장에서 발휘하는 파괴력
① 축 고정(기준 설정)의 명확화 :
준킬러 격자점 문제에서 가장 빈번하게 발생하는 실수는 $x$축 기준으로 세다가, 갑자기 헷갈려서 $y$축 기준으로 바꿔 세어 정답이 꼬이는 현상입니다. 코딩의 이중 루프는 구조적으로 **바깥쪽 루프($x$)가 고정된 상태에서 안쪽 루프($y$)가 완결**되도록 강제합니다. 이 생각의 구조가 뼈대에 박힌 학생은 수능 시험지를 만났을 때도 자기도 모르게 한쪽 축을 완벽하게 통제한 상태로 케이스를 깔끔하게 분류하게 됩니다.
② 경계선 조건($\le$ 기호)의 엄밀성 확보 :
위 코드의 int(max_y) + 1 부분은 수학 문제에서 '경계선을 포함한다'는 부등호 조건을 완벽히 제어하기 위한 장치입니다. 손으로 대충 풀다가 부등호에 등호가 들어가는지 안 들어가는지 헷갈려 정답에서 $\pm 1$ 차이로 아깝게 4점을 날리는 학생들에게, 코딩의 경계값 설정 훈련은 수능 문제를 풀 때 부등식의 경계를 소름 돋도록 깐깐하게 확인하게 만드는 최고의 논리적 무기가 됩니다.
🎯 7화 수능 도약을 위한 핵심 노트
1. 2차원의 가로-세로 좌표평면은 코딩의 이중 반복문(바깥 For + 안 For) 구조와 메커니즘이 완벽히 일치한다.
2. 한쪽 축을 먼저 고정해 놓고 다른 축을 샅샅이 스캔하는 이중 루프 사고를 체득하면 수능의 격자점 노가다 문항이 한결 가볍고 정교해진다.
3. 경계 조건을 다루는 코딩적 꼼꼼함은 수능 4점짜리 문제의 당락을 가르는 '경계선 오류와 실수'를 근본적으로 차단한다!
다음 시간(8화) 예고:
평면 위의 점들을 마음껏 요리하는 법을 배웠습니다! 그렇다면 수학의 세계에서 두 변수 $x$와 $y$ 사이의 끈끈한 관계를 나타내는 대응 관계, 수능 전체 점수의 70% 이상을 지배한다고 해도 과언이 아닌 핵심 중의 핵심 단원은 무엇일까요? 바로 [함수(Function)]입니다. 수학의 $f(x)$ 마법 상자와 코딩의 def 함수명():이 어떻게 수능 그래프 해석의 강력한 치트키가 되는지 8화에서 정밀 해체해 보겠습니다. 다음 시간에 만나요!
'코딩으로 시간 벌기 > 코딩X수학' 카테고리의 다른 글
| [코딩X수학 개념 #9] 수열의 귀납적 정의와 재귀 함수 : 수능 15번 단골 '킬러 수열' 문제를 관통하는 루프 회로 (0) | 2026.06.26 |
|---|---|
| [코딩X수학 개념 #8] 함수(Function) : 수학의 $f(x)$ 마법 상자와 코딩의 def, 수능 그래프 해석의 치트키 (0) | 2026.06.26 |
| [코딩X수학 개념 #6] 집합과 리스트 : 수능 변별력 문항 '조건을 만족하는 집합'을 정복하는 눈 (0) | 2026.06.20 |
| [코딩X수학 개념 #5] 반복문과 수열의 합 : 수학Ⅰ의 시그마($\sum$) 공식, 외우지 말고 For문으로 관통하라! (0) | 2026.06.20 |
| [코딩X수학 개념 #4] 조건문: 컴퓨터에게 판단력을! 수학의 '명제와 조건'이 만드는 알고리즘의 갈림길 (0) | 2026.06.20 |
