본문 바로가기

전체 글30

[백준] 15894번 - 수학은 체육과목 입니다 문제 성원이는 수학을 정말 못 하는 고등학생이다. 수학을 못하는 대신 근성과 팔 힘이 뛰어난 성원이는 수학 시험에서 수학 지식을 사용하지 않고 근성과 체력을 사용해 문제를 푼다. 지난 시험에서는 아래 사진에 나와있는 문제를 근성과 체력을 사용해 열심히 풀었지만 사진에서 볼 수 있듯이 틀려버리고 말았다! 결국 이 문제는 틀려버렸지만 성원이는 여전히 자신의 체력에 강한 자신감을 갖고 있다. 어떤 어려운 문제가 나와도 이런 식으로 근성과 체력을 사용하면 다 풀 수 있으니 이 방법은 최고의 방법이라고 생각하고 있다. 성원이의 친구 형석이는 근성과 체력으로 수학 문제를 푸는 것은 굉장히 무식한 방법이라고 생각한다. 형석이는 수학을 공부하면 문제를 훨씬 빨리 풀 수 있다는 것을 알려주기 위해 위 사진에 나와있는 문.. 2024. 1. 8.
[백준] 10807번 - 개수 세기 문제 총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거나 같으며, 100보다 작거나 같다. 출력 첫째 줄에 입력으로 주어진 N개의 정수 중에 v가 몇 개인지 출력한다. [ 제출 코드 ] _ 30840KB, 68ms import sys n = int(input()) data = list(map(int, sys.stdin.readline().split())) v = int(input()) print(data.count(v)) [ TIL ] python에선 보통 입력 받.. 2022. 11. 3.
[이코테] 복잡도 동일한 기능을 수행하는 알고리즘이 있다면 일반적으로 복잡도가 낮을수록 좋은 알고리즘이다. 1_ 시간 복잡도(Time Complexity) '얼마나 오래 걸리는지' → 연산 횟수 # 빅오(Big-O) 표기법 : 가장 빠르게 증가하는 항만을 고려하는 표기법 빅오 표기법 명칭 O(1) 상수 시간 (Constant time) O(logN) 로그 시간 (Log time) O(N) 선형 시간 O(NlogN) 로그 선형 시간 O(N^2) 이차 시간 O(N^3) 삼차 시간 O(2^n) 지수 시간 (시간 복잡도 표에서 위쪽에 있을수록 더 빠름) 코딩테스트 문제를 풀기전에 조건을 보면 얼마나 효율적인 알고리즘을 작성해야 하는지 눈치 챌 수 있다. 예를 들어, 시간 제한 1초인 문제에 데이터의 개수 N이 1000만개를 넘어.. 2022. 11. 3.
[멋사] AI SCHOOL 5기_ Day 31 K-Means Algorithm 비지도학습의 Clustering(군집화) 도구다. 비슷한 데이터는 같은 그룹으로 묶고, 비슷하지 않은 데이터는 다른 그룹으로 떨어뜨리는 것이 목표다. 여기서 K 값은 클러스터 개수를 의미하며 직접 지정하는 hyper-parameter인데, 최적의 클러스터 개수를 정하는 것이 어렵고 중요하다. K-Means의 원리는 다음과 같다. 1. K개의 임의의 중심값을 고른다. (보통 데이터 샘플 중의 하나를 선택) 2. 각 데이터마다 중심값까지의 거리를 계산하여 가까운 중심값의 클러스터에 할당한다. 3. 각 클러스터에 속한 데이터들의 평균값으로 각 중심값을 이동시킨다. 4. 데이터에 대한 클러스터 할당이 변하지 않을 때까지 2와 3을 반복한다. iris 데이터를 가지고 K-Means.. 2022. 4. 13.
[멋사] AI SCHOOL 5기_ Day 30 Decision Tree(의사결정나무) 이해하기 쉽고 해석도 용이하다. 하지만 2가지 큰 단점이 있다 입력 데이터의 작은 변동에도 Tree의 구성이 크게 달라질 수 있다 과적합이 쉽게 발생한다 → 그래서 모델 앙상블 기법 중 하나인 Boosting 기법이 적용되었다. AdaBoost (Adaptive Boosting) 1) 데이터를 바탕으로 여러 weak learner들을 반복적으로 생성한다 2) 앞선 learner가 잘못 예측한 데이터에 가중치를 부여하도록 하고(boosting) 학습시킨다 3) 최종적으로 만들어진 strong learner를 이용하여 실제 예측을 진행한다 여기서 문제는 높은 가중치를 가진 data point가 존재하게 되면 성능이 크게 떨어졌음 → 그래서 어떻게 하면 에러를 최소화하는.. 2022. 4. 12.
[멋사] AI SCHOOL 5기_ Day 29 Linear Regression(선형 회귀) 정답이 있는 데이터의 추세를 잘 설명하는 선형 함수를 찾아 x에 대한 y를 예측하는 것이다. - 1개의 독립변수(x)가 1개의 종속변수(y)에 영향을 미칠 때, 단순 회귀분석이라 하고 y = ax + b 형태의 식을 세운다. 이때 a는 가중치(weight), b는 보정치 또는 편향(bias)라고 한다. - 2개 이상의 독립변수(x)가 1개의 종속변수(y)에 영향을 미칠 때, 다중 회귀분석이라 하고 다음과 같은 형태의 식을 세운다. 여기서 머신러닝은 최적의 Theta set를 찾기 위해 실제값과 가설로부터 얻은 예측값의 오차를 계산하는 식을 세우고, 이 식의 값을 최소화하는 방식을 사용한다. 이때 실제값과 예측값에 대한 오차에 대한 식을 Cost Function.. 2022. 4. 11.