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

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

강의자료 343

[알고리즘] 부분합

부분합 알고리즘이란? N명의 시험 성적을 내림차순으로 정렬해 둔 score[] 가 있다고 하면 여기서 우리는 a등에서 b등까지의 평균을 구하려고 한다. 가장 간단한 알고리즘으로는 a등부터 b등까지의 합을 구한 다음 b - a + 1 로 나누는 것이다. 하지만 이렇게 구하는 횟수가 빈번해진다고 하면 1회를 구할 때마다 최대 N번씩 반복하게 된다. 이럴 때 유용하게 사용하는 것이 부분합(Partial sum)이다. 위와 같이 psum 테이블을 미리 구해 놓는다고 하면 2번지 부터 4번지까지의 부분합을 구하려고 하면 psum[4] 는 0,1,2,3,4 의 모든 합이기 때문에 여기서 0,1 의 값을 빼면 2번지부터 4번지 까지의 부분합이 된다. 따라서 psum[4] - psum[1] 의 값이 2번지 부터 4번지..

[인공지능수학] 누적분포

1. 누적분포란 평균이 0이고 표준편차가 1인 정규분포를 표준정규분포라고 한다. 평균이 0이고 표준편차가 1인 z점수 공식에 대입하면 z = x 가 된다. 따라서 표준 정규분포는 z 점수를 사용해 전체 데이터가 어떻게 분포되어 있는지 나타낼 수 있다. 예를 들어 표준정규분포에서 z 점수가 1.0 이내에 위치한 샘플은 전체의 약 68%에 해당한다. z점수 2.0 이내에 위치한 샘플은 95%에 해당한다. 여기서 x축은 샘플값 또는 z점수, y축은 샘플의 등장 빈도 또는 밀도가 된다. 그럼 z 점수 1.5 이내에 있는 샘플의 비율은 얼마나 될까? 2. 누적분포 구하기 누적분포는 주어진 확률이 특정 값보다 작거나 같은 확률을 나타내는 값이다. 가령 표준정규분포에서 평균 0 까지 누적분포는 정확히 50%가 될것이..

[정보올림피아드 대비]19. 방정식을 활용한 문제

방정식이란? 기본적인 연산을 할 때 구체적인 수들을 볼 수 있어요. 가령 23 + 5 = 28 과 같이 계산이 되는 것을 볼 수 있습니다. 대수의 세계로 들어가면서 변수라는 개념을 다루게 됩니다. 변수란 바뀔 수 있는 값이나 식을 의미합니다. 예를 들어 x + 5 라고 쓴다고 하면 x 의 값에 따라 결과값은 달라 집니다. 이러한 것은 하나의 식이라고 합니다. 여기서 식과 방정식의 차이를 확인해 보겠습니다. 식은 단지 어떤 값을 나타내는 표현입니다. 예를들어 x + 5 라는 식은 x의 값에 따라 결과값이 바뀔것입니다. 방정식의 경우는 식이 서로 같다고 가정하고 시작합니다. 예를 들어 x + 5 = 10 이라고 하면 한개의 값을 모르는 상황에서 x의 값을 알아낼 수 있습니다. 이렇게 미지수가 포함된 식에서 ..

[알고리즘] 조합탐색

조합탐색이란? - 완전 탐색 알고리즘은 대개 답을 만드는 과정을 여러개의 선택으로 나눈 뒤 재귀 호출을 이용해 각각의 선택지를 채워가는 형태로 구현됨 - 기존 완전 탐색은 모든 답을 다 만들어 보면서 문제를 해결하므로 완전 탐색의 수행시간은 탐색 공간의 크기에 직접적으로 비례 - 이는 문제의 규모에 따라 기하급수적으로 크기가 증가. - 조합탐색이란 완전 탐색을 포함해 유한한 크기의 탐색 공간을 뒤지면서 답을 찾아 내는 알고리즘 목표 - 기본적으로 모두 최적해가 될 가능성이 없는 답들을 탐색하는 것을 방지하여 만들어 봐야 하는 답의 수를 줄이는 것을 목표로 함 조합탐색 최적화 기법 - 가지치기 : 탐색 과정에서 최적해로 연결될 가능성이 없는 부분을 잘라낸다. 예) 외판원 문제에서 길이가 10인 경로를 이미..

[초등 1학년 2학기]시계 보기와 규칙 찾기

참고 문제 - https://ko.khanacademy.org/math/kor-1st-2/xdffa2afcc11cd098:1-2-5#xdffa2afcc11cd098:1-2-5-3 ​ 시각의 쓰임을 알수 있고 몇시와 몇분을 5분 단위로 말하고 나타낼 수 있다. 분은 숫자가 1일때 5분,2일때 10분... 과 같이 읽을 수 있으며~ 시는 숫자가 12 와 1 사이일 때 12시,1과 2 사이일 때 1시와 같이 읽을 수 있는 것을 연습할 수 있다. ​ 작품소개 처음 시작하면 시계에 임의의 시간을 나타내고 현재 시간은 몇시입니까? 라고 묻는다. 몇시인지 맞추면 다음으로 현재시간은 몇분입니까? 라고 묻는다. 정답이라면 정답입니다. 가 출력되고 틀린 경우 현재 시간은 몇시 몇분입니다. 라고 출력 된다. ​ ​ 알고리즘..

[인공지능수학] 표준점수

1. 표준점수란? 데이터가 정규분포를 따른다고 가정하고 각 값이 평균에서 얼마나 떨어져 있는지 표준편차를 사용해 변환한 점수를 표준점수(standard score) 또는 z점수 라고 한다. 예를 들면 다음과 같다. 출생한 아기의 몸무게와 키에 대한 데이터가 있다고 가정해 보자.몸무게와 키가 평균으로부터 얼마만큼 떨어져 있는지 나타내려면 몸무게는 1kg, 키는 5cm 와 같이 다른 단위를 써야 한다.게다가 이런 수치만 보아서는 평균으로부터 몸무게가 더 멀리 떨여져 있는지, 키가 더 멀리 떨어져 있는지 알기 어렵다. 그래서 z점수라는 값을 사용한다. 2. 표준점수(z점수) 구하기 z점수는 평균까지의 거리를 표준편차로 나눈 값이다. 식은 다음과 같다. z점수 = (x - 모집단평균)/모집단의 표준편차 와 같이..

[정보올림피아드 대비]18.그래프 관련 문제(한붓그리기외)

1. 그래프란? 그래프 : G=(V,E) 여기서 V는 정점(Node 라고도 하며 꼭짓점이라고도 한다.), E는 엣지( Vi~Vj 를 연결하는 모서리)라고 하며 그래프는 정점과 모서리의 집합으로 구성된 구조를 의미한다. 예) 위와 같은 형태가 그래프이다. 2. 그래프 인접(Adjacent),근접(Incident),루프(Loop) - 인접(Adjacent),근접(Incident) 그래프 G=(V,E)에서 꼭짓점 a와 b를 연결한 모서리 ab가 있을 때 꼭짓점 a와 b는 서로 인접하고 모서리 ab는 꼭짓점 a와 b에 근접한다. - 루프(Loop) 인접하는 꼭짓점이 하나인 모서리 e 3. 방향그래프 화살표로 모서리를 표현해 인접하는 꼭짓점 간의 순서를 알 수 있는 그래프 G = 로 표현하며 인접하는 꼭짓점 사이..

[인공지능수학] 호도법/도수법 실습하기

https://wondangcom.tistory.com/2135 에서 도수법과 호도법에 대해 살펴 보았습니다. 이번 시간에는 도수법과 호도법을 파이썬으로 변환하는 방법에 대해 살펴 보도록 하겠습니다. 1. 도수법 -> 호도법 도수법 60도를 호도법인 deg로 나타내는 방법을 살펴 보도록 하겠습니다. import numpy as np import math deg1 = 60 * math.pi / 180 print(deg1) deg2 = np.deg2rad(60) print(deg2) deg3 = math.radians(60) print(deg3) deg1 은 1도 = pi/180 이므로 직접 연산을 한 값 deg2은 numpy 에서 제공하는 deg2rad 메서드로 연산을 한 값 deg3은 math 함수에서 ..

[정보올림피아드 대비]17.진수를 활용한문제(2진수,10진수,16진수등)

1. n진법 n진법이란 0과 n-1 사이의 숫자들을 이용해 수를 표현하는 방식입니다. 즉 우리가 사용하는 10진법은 0~9까지의 수를 사용하며 컴퓨터가 사용하는 2진법은 0~1 까지의 수를 사용합니다. n진법을 사용한다면 n을 기수(Base Number) 라고 합니다. 기수표기 예) 10진수 1234 : 1234(10) 2진수 1010 : 1010(2) 2. 10진수(Decimal Number) 10진수는 기수를 10으로 하는 수 체계이며 0과 9 사이의 숫자를 이용해 수를 표현합니다. 또한 10진수는 정수 1234 에 대해 다음과 같이 표현 할 수 있습니다. 1234(10) = 1*103 + 2*102 + 3*101 + 4*100 즉 오른쪽 부터 왼쪽으로 기수의 0승 , 기수의 1승 ,기수의 2승 자리..

[알고리즘] 동적계획법(Dynamic)

동적계획법 알고리즘이란 동적계획법은 문제의 최적해를 구하거나 답의 개수를 세는 과정에 사용하는 알고리즘 설계기법 - 전체 문제를 작은 문제로 단순화 한 다음 점화식으로 만들어 재귀적인 구조를 활용해서 전체 문제를 해결하는 방식 동적계획법 알고리즘 설계 방법 1. 전체 문제를 작은 문제로 단순화한다. -> 부분문제를 정의 2. 재귀적인 구조를 활용할 수 있는 점화식을 만든다. 3. 작은 문제를 해결한 방법으로 전체 문제를 해결한다. 메모이제이션 기법 메모이제이션(Memoization)은 동적계획법에서 아주 중요한 개념이다. 함수의 값을 계산한 뒤 계산된 값을 배열에 저장하는 방식이다. 이러한 메모이제이션은 필요한 때마다 함수를 다시 호출하지 않고 값을 빠르게 가져 올 수 있다. 동적알고리즘 예시문제 www..