2025년, 코딩은 선택이 아닌 필수!

2025년 모든 학교에서 코딩이 시작 됩니다. 먼저 준비하는 사람만이 기술을 선도해 갑니다~

강의자료 343

[알고리즘] 제곱근 분할법(Sqrt Decomposition)

제곱근 분할법(Sqrt Decomposition)이란? Sqrt Decompostion 의 아이디어는 다음과 같다. 1 2 3 4 5 6 7 8 9 위와 같이 9 개의 원소가 있다면 연속적인 원소들을 하나의 묶음으로 생각한다는 것이다. 이 때 한 묶음을 √N 개로 묶는다( 따라서 Sqrt 라는 이름이 붙는다.) (1,2,3),(4,5,6),(7,8,9) 위와 같이 3개의 그룹으로 묶은 다음 각 그룹에 대푯값을 정한다. 만약 그룹의 합을 구하는 쿼리라고 하면 그룹의 합이 대푯값이 되고 쿼리가 구간의 최댓값을 구하는 쿼리라면 그룹의 최댓값이 구간의 쿼리가 된다. 이러한 제곱근 분할법은 Mo's Algorithm 의 기반이 되는 알고리즘으로 사용된다. 제곱근 분할법(Sqrt Decomposition) 구현 여..

[사고력 수학] 판매한 사과와 배의 개수는

원당이는 과일가게에서 아르바이트를 하고 있다. 원당이가 판 과일을 세어 보니 사과와 배의 개수의 합이 20개였고 총 금액을 보니 9500원이었다. 사과와 배의 판매 개수는 몇 개이겠는가? 여기서 사과의 가격이 300원이었다는 것만 알고 있다. 또한 판매 개수는 각각 6개 이상 이었다면 배의 가격이 최대가 되고 사과와 배의 판매 갯수는 최소가 되었을 때의 사과와 배의 개수는 몇개인가? 문제 풀이) b가 사과의 갯수 a가 배의 갯수, x가 배의 가격이라면 ax + b*300= 9500 a + b = 20 b = 20 - a ax + (20-a)*300=9500 ax - 300a = 9500 - 6000 a = 3500/(x-300) 여기서 3500을 나누어 떨어뜨리는 가장 큰 수를 찾았을 때 최솟값 a를 찾..

[사고력 수학] 땅의 넓이를 계산해 주자.

원당이는 정사각형 모양의 땅을 가지고 있다. 그런데 주변에 땅을 가지고 있던 마전이가 남쪽 부분의 1/3만큼을 잘라서 주면 오른쪽으로 원당이가 가지고 있는 길이의 1/2 만큼 맞춰서 땅을 교환하자고 한다. 즉 원당이의 땅은 세로 방향으로 1/3 만큼 줄고 가로 방향으로 1/2 만큼 늘어나게 된다. 원당이는 이 교환을 수락해야 할까? 만약 이득이라면 얼마만큼의 이득을 볼 수 있는지 계산 해 주자. 문제풀이) 좌측의 원래 땅의 모양이 우측의 땅 모양으로 바뀌었다. 원래 땅의 넓이가 1 이었다면 바뀐 모양의 땅은 2/3 * 3/2 = 1 이다. 결국 원래 넓이와 동일하기 때문에 교환을 수락하는 것은 의미가 없다. 정답) 넓이가 같기 때문에 교환을 할 의미가 없다.(땅의 가치는 모양이나 위치에 따라 다르기 때문..

[초등 3학년 1학기] 백의 자리의 덧셈과 뺄셈(올림/받아내림 없음)

https://ko.khanacademy.org/math/kor-3rd-1/xf61be49f9afc04f2:3-1-1 ​ 1. 덧셈과 뺄셈 | 초등 3학년 1학기 | 수학 | Khan Academy 세 자리 수의 덧셈과 뺄셈의 계산 원리를 이해하고 계산할 수 있으며 일상생활에서 유용하게 활용할 수 있다. 또한 세 자리 수의 덧셈과 뺄셈 상황과 관련된 문제 해결 및 탐구 학습 과정을 통해 ko.khanacademy.org 목표 세 자리 수의 덧셈과 뺄셈의 계산 원리를 이해하고 계산 할 수 있으며 일상 생활에서 유용하게 활용할 수 있다. 또한 세 자리 수의 덧셈과 뺄셈 상황과 관련된 문제 해결 및 탐구 학습 과정을 통해 수학 교과 역량을 강화 할 수 있다. 3자리 숫자 덧셈 뺄셈 연산 시 각 자리수의 연산의..

알고리즘] 최소 절단

최소 절단 알고리즘을 알기 위해서는 절단이라고 불리는 개념을 생각해야 한다. 절단(cut)란 네트워크를 정확히 두래로 쪼개는 것을 의미한다. 문제의 입력으로 시작점 s와 종점 t 가 들어 오기 때문에 우리는 둘로 쪼개는 여러 방법 중에 한쪽에는 s에 속하고 다른쪽엔느 t에 속하도록 하는 절단만을 고려한다. 이것을 s-t절단 이라고 부르는데 이 글에서는 다른 절단에 대해서는 고려하지 않기 때문에 절단이란 s-t 절단을 가르킨다고 생각한다. 그래프 절단이란 어떤 정점 집합 S ⊆ V 에 대해서 s ∈ S 이고 t ∈ V\S 일 때 (S,V\S) 처럼 나타내며 S로부터 나가는 변의 집합을 말한다. 또한 그 용량의 합을 절단의 용량이라고 말하며 절단에 포함된 변을 모두 제거하면 s에서 t까지의 경로가 존재하지 ..

[초등 2학년 2학기] 길이재기

자료 출처 : https://ko.khanacademy.org/math/kor-2nd-2/x755c696a3c09a536:2-2-3 ​ 목표 길이의 표준 단위인 CM 와 M와의 관계를 이해하고 사물의 길이의 합과 차를 같은 단위로 변환하여 계산해 본다. ​ 개념이해하기 100cm 는 1m 이다. 1m 는 100cm 이다. 170cm 는 1.7m이다 1.7m는 170cm이다 2m + 120cm = 3.2m 또는 320cm 이다. 2m - 120cm = 0.8m 또는 80cm 이다. 연산 할 때 같은 단위로 변환하여 연산을 수행한다. ​ 작품소개 100~1000 까지의 임의의 수를 선택해서 cm 변수에 저장을 합니다. 1~10 까지의 임의의 수를 선택해서 m 변수에 저장을 합니다. ​ 각각에 해당하는 길이 ..

inchworm 알고리즘

inchworm 알고리즘이란? inchworm은 자벌레를 말하는데 inchworm 알고리즘은 자벌레가 기어가는 모양과 같이 선두와 마지막에 변화를 가하면서 조건을 만족하는 구간을 찾는 알고리즘이다. 머리와 꼬리가 이동하는 개념으로 투포인트와 같은 개념이다. 이 알고리즘은 프로그래밍 콘테스트에 자주 출제 되는 유형으로 다음과 같은 문제가 있다. 예제 문제(출처 POJ 3061) 각각 10000보다 작거나 같은 N개의 양의 정수(10 > n >> m; ans.clear(); for(int i=0;i> num; ans.push_back(num); } int s=0,t=0,sum=0,res=n+1; for(;;) { while(t

[사고력 수학] 통나무를 자르는 시간을 계산해 보자.

원당이는 15m 의 통나무를 자르려고 한다. 한번 자르는데 걸리는 시간이 7분이 걸린다. 한번을 자르고 나면 원당이는 힘 들어서 3분을 쉬어야 한다. 그렇다면 15m의 통나무를 1m 짜리 15개로 자르는데 걸리는 시간은 몇 분인가? 문제풀이) 15개로 자르기 위해서는 14번을 잘라야 한다. 1번 자르는데 걸리는 시간은 7분이고 3분을 쉬어야 하기 때문에 10분이 소요 된다. 따라서 140분이라고 착각할 수 있지만 마지막 14번째 자를 때는 쉬는 시간이 포함되지 않으므로 정답은 137분이다. 정답) 137분

기하알고리즘] 회전하는 캘리퍼스

캘리퍼스란? 캘리퍼스는 작은 물건의 지름,너비 등을 측정할 때 쓰는 도구로 두개의 평형한 변 사이의 길이를 측정하는 도구이다. 회전하는 캘리퍼스(Rotating Calipers) 알고리즘이란? 회전하는 캘리퍼스 알고리즘은 실제 볼록 다각형의 지름을 재는데 사용된다. 다각형을 따라 두 직선을 한바퀴 돌리면서 두 직선에 닿는 꼭지점들 간의 거리를 구하는 알고리즘이다. 백준 10254번 고속도로 문제를 기준으로 살펴 보자 https://www.acmicpc.net/problem/10254 10254번: 고속도로 n개의 도시를 가진 나라가 있다. 이 나라에서는 도시들 중 가장 먼 두 도시 사이에 직행 고속도로를 놓으려 한다. 고속도로는 시작점과 끝점이 아닌 다른 나라를 통과해도 된다. 즉, n개의 도시 www...

[사고력 수학]과일의 갯수를 맞혀라.

원당이는 원당동에서 과수원을 하고 있다. 과일을 수확하여 모두 판매를 한 다음 사과가 41개,배 67개, 귤 92개를 최대한 많은 마을 주민들에게 똑같은 개수로 나누어 주었더니 사과 2개,배 1개,귤 2개가 남았다. 그렇다면 원당이가 나누어 준 마을 사람은 몇명이고 몇 개씩을 나누어 주었는지 개수를 맞혀 보시오. 문제풀이) 사과 2개,배 1개, 귤 2개가 남았으므로 마을 사람들에게 나누어준 갯수는 사과 39개,배 66개, 귤 90개 이다. 이 수의 최대 공약수는 3이므로 최대 3명에게 각각 사과 13개,배 22개, 귤 30개 씩을 나누어 주었다. 이 문제는 최대공약수를 활용하여 최대한 많은 사람을 찾아 주는 문제 였습니다. 정답) 3명에게 사과 13개,배 22개, 귤 30개 씩을 나누어 줌