전체 글288

★Math Beginner II - 30 Solved★ ★ 2530 인공지능 시계 ★ A,B,C = map(int,input().split()) D = int(input()) cur = 3600*A + 60*B + C after = cur + D after %= 86400 print(after//3600, (after%3600//60), after%60) 👉 시계 관련 문제는 항상 시, 분, 초 관련 숫자 3600과 60을 적절히 조합해야만 풀 수 있는, 꽤 나름 생각해야 하는 문제이다. H는 0부터 23, M과 S는 0부터 59까지의 범위만 허용 가능하므로 이에 맞게 코딩을 해야 할 필요가 있음! / 위 풀이 아이디어) 애초에 초로 바꾼다음, 하루가 넘어갈 경우를 대비해 86400으로 나눈 나머지를 가지고 다시, 시분초에 맞게 정렬 👉 다른 풀이> a, b.. BOJ/🥉 2022. 9. 20.
Greedy * intro "현재 상황에서 지금 당장 좋은 것만 고르는 방법" → 일반적인 그리디 알고리즘은 문제를 풀기 위한 최소한의 아이디어를 적절히 떠오르면 풀리는 경우 많음 → 단순히 가장 좋아보이는 걸 반복적으로 선택해도 최적의 해를 구할 수 있는 지 검토하게 된다. → 일반적인 상황에서 그리디 알고리즘은 최적의 해를 보장할 수 없는 경우가 많음 → 하지만 코딩 테스트에서의 대부분 그리디 문제는 탐욕법으로 얻은 해가 최적의 해가 되는 상황에서, 추론할 수 있어야 풀리게 출제 ★ 주어진 문제를 모든 상황을 다 고려한 채로, 각 상황의 최적의 결과를 상황별로 계속 모으면, 그 결과가 곧 최적의 결과가 되는 유형이 greedy 유형 ☆ 주의점: 문제의 모든 상황을 생각해야 하고 / 각 상황의 greedy한 솔루션.. Computer Science/Algorithms 2022. 9. 12.
★Basics II - 50 Solved★ ★ 9654 나부 함대 데이터 ★ print('''SHIP NAME CLASS DEPLOYMENT IN SERVICE N2 Bomber Heavy Fighter Limited 21 J-Type 327 Light Combat Unlimited 1 NX Cruiser Medium Fighter Limited 18 N1 Starfighter Medium Fighter Unlimited 25 Royal Cruiser Light Combat Limited 4 ''') ★ 9653 스타워즈 로고 ★ print(''' 8888888888 888 88888 88 88 88 88 88 88 8888 88 88 88 88888 88 88 888888888 88 88 88888888 88 88 88 88 888888 88 .. BOJ/🥉 2022. 9. 8.
python standard libraries 🍹 python에서 실전으로 유용하게 사용하는 표준 라이브러리들을 이번 포스팅을 기회삼아 정리해보려 한다! :) Module & Package 1. Module [1] 필요성 및 정의 * 코드가 당연히 길어지는 상황에서 모든 함수, 변수를 구현하는 것은 불가능하다. 따라서 누군가 만들어놓은 함수, 변수 등을 활용해야 한다 * 모듈 = 특정 목적을 sh-avid-learner.tistory.com 🍹 모듈, 패키지가 무엇인지는 상단 포스팅에서 가볍게 다룬 적이 있다. 🍹 libraries 종류 설명 내장함수 기본적인 함수들 제공 (필수적인 기능 포함) (print, input() 등등) itertools 반복되는 형태의 데이터 처리 (특히 순열, 조합) heapq heap 자료구조 제공 (주로 우선순위 q.. Python/Fundamentals 2022. 8. 22.
★Implementation Beginner I - 50 Solved★ ★ 2908 상수 ★ lst = list(input().split()) print(max(int(lst[0][::-1]), int(lst[1][::-1]))) ★ 2675 문자열 반복 ★ for _ in range(int(input())): R, S = input().split() R = int(R) for ch in S: print(ch*R,end='') print(' ') 🍃 print()문의 end = ' '를 이용해, print로 원하는 내용을 출력해도, 그 다음 줄이 아닌, 한 칸 띄고 그 이후 결과가 계속 나오게 출력 가능! ① sep → print의 출력물들 사이에 무엇을 넣을 지 내용을 결정할 수 있다. ② end → print의 출력물들을 출력하고 난 마지막에 무엇을 넣을 지 내용 결정 .. BOJ/🥉 2022. 8. 22.
λ 표현식 🤘🏻 파이썬에서 λ 표현식을 이용하면 함수를 간단하게 작성할 수 있다. 즉, 특정한 기능을 수행하는 함수를 단 한 줄에 작성할 수 있다는 게 큰 특징 #lambda 표현식으로 구현한 더하기 함수 print((lambda a, b: a +b)(3,7)) 🤘🏻 쓰는 방법 ① 특수문자 lambda 키워드 ② 매개변수를 쭉 나열 ③ 이후 콜론(:) 입력 ④ 입력된 매개변수를 더한 결괏값 - 리턴될 출력 결과를 콜론(:) 다음에 입력 - 출력 ※ 변수를 새로 사용해서 return하는 경우 lambda 표현식을 사용할 수 없음 ※ 🤘🏻 함수 자체를 입력으로 받는 함수, 또는 함수 자체가 return문으로 사용되는 함수를 사용할 때, 또는 함수 자체가 매우 간단해 한 번만 사용하고 말 때 주로 lambda 식을 이용.. Python/Fundamentals 2022. 8. 21.
★Number Theory Upper-Beginner I - 15 Solved★ ★ 2609 최대공약수와 최소공배수 ★ A, B = map(int,input().split()) a, b = A, B GCD, LCM = 0, 0 while True: if A == B: GCD = A print(GCD) break else: if A >= B: A = abs(A-B) else: B = abs(A-B) print(a*b//GCD) 🧚‍♂️ 최대공약수, 최소공배수 전형적인 알고리즘! 확실히 짚고 넘어가자. ① math module - gcd, lcm 사용 (메모리 사용량, 실행 시간 훨씬 효율적!) import math a, b = map(int, input().split()) print(math.gcd(a, b)) print(math.lcm(a, b)) ② 유클리드 호제법 사용 → 해결법.. BOJ/🥉 2022. 8. 21.
list, string, tuple, dictionary, set (iterables) ** iterable의 대표 5가지 list, string, tuple, dictionary, set에 대해 깔끔히 정리해보려 한다! ** 파이썬의 대표 자료 저장 방식으로, 반드시 알아야 하는 개념! 꼭 숙지하도록 하자 1. list * intro → 대괄호 []로 묶어서 표시 → list()로 list를 만들 수 있음 print(list(range(1,11))) #[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(list('hello')) #['h', 'e', 'l', 'l', 'o'] → []안에는 ,로 분리하여 여러 개 요소를 담을 수 있음 → 숫자, 문자열, 그리고 숫자와 문자를 섞은 모든 list 구현 가능(즉, 한 list 내에 다양한 data type이 들어가도 가능) *.. Python/Fundamentals 2022. 8. 19.
★Implementation Basics II - 24 Solved★ ★ 5341 Pyramids ★ while 1: N=int(input()) if N==0:break s=0 for i in range(1,N+1):s+=i print(s) ★ 5300 Fill the Rowboats! ★ N=int(input()) n=0 for i in range(1,N+1): print(i,end=' ') if i%6==0: print('Go!',end=' ') if N%6!=0:print('Go!') ★ 10188 Quadrilateral ★ for _ in range(int(input())): a,b=map(int,input().split()) for _ in range(b): print('X'*a) print() ★ 10179 쿠폰 ★ for _ in range(int(input.. BOJ/🥉 2022. 8. 17.
★Math Beginner I - 30 Solved★ ★ 4153 직각삼각형 ★ #백준 4153 #브론즈 III while True: a,b,c = map(int,input().split()) if (a,b,c) == (0,0,0): break if (int(((max(a,b,c)**2) - (min(a,b,c)**2)) ** (1/2)) in (a,b,c)): print('right') else: print('wrong') 💋 가장 긴 변의 제곱이 나머지 두 변들의 제곱합이 직각삼각형 → 가장 긴 변의 제곱에 가장 작은 변의 제곱을 뺀 결과의 제곱근이 세 변에 있다면(in 연산자), 직각삼각형이라 판단하는 로직으로 코드 설계함 (애초에 sort()를 사용했다면, 세 변이 크기 순서대로 쉽게 나열되어 더 간단히 풀 수 있었을 것!) - 그 외 가능한 로직 .. BOJ/🥉 2022. 8. 16.
★Implementation Basics I - 50 Solved★ ★ 2480 - 주사위 세개 ★ try: a,b,c = map(int, input().split(' ')) if (a6) or (b6) or (c6): raise Exception('1부터 6까지의 자연수만 입력하세요') elif a == b == c: ans = 10000 + a*1000 elif a == b != c or a != b == c: ans = 1000 + 100*b elif a == c!= b: ans = 1000 + 100*a else: ans = 100*max(a,b,c) print(ans) except Exception as e: print(e) ★ 14681 - 사분면 고르기 ★ try: x = int(input()) y = int(input()) if (x == 0 or x < .. BOJ/🥉 2022. 8. 4.
Matrix (fundamentals) 🌻 사실 이거 다룰려고 Scalar & Vector 배운 거라 할 정도로 행렬은.. 선형대수학의 꽃! 🌻 Scalar & Vector (fundamentals) ▶ Linear Algebra 하면? 당연히 알아야 할 기본은 'Scalar(스칼라)' & 'Vector(벡터)' & 'Matrix(행렬)' ◀ 1. Scalar * concepts = "단순히 변수로 저장되어 있는 숫자" → vector 혹은 matrices에 곱해지는.. sh-avid-learner.tistory.com 1. intro "행렬이란 → 행과 열을 통해 배치되어 있는 숫자들" → matrix를 표현하는 변수는 일반적으로 대문자 → 행렬은 vector의 모음으로도 말할 수 있음 (주로 default로 column vector를 기준.. Math & Linear Algebra/Concepts 2022. 7. 31.
★Basics I - 50 Solved★ ★ 1000 A +B ★ try: a,b = map(int, input().split()) if (a =T else print(T) 👄 한 번에 sum()과 list()를 활용 ★ 8710 Koszykarz ★ import math k,w,m=map(int,input().split()) print(math.ceil((w-k)/m)) 👄 올림은 올림함수 ceil ★ 15680 연세대학교 ★ N = input() print('Leading the Way to the Future') if N == '1' else print('YONSEI') BOJ/🥉 2022. 7. 31.
Data Handling 기초적으로 알아야 하는 총 4개의 데이터 타입에 대해서 정확히 알아보고(돌다리 두들기고!) 넘어가자 :) ※ 이런게 있다고 기억하고 추후 정보를 조금씩 추가하는 방식! CSV(Comma Separated Values) 💐 필드를 쉼표로 구분한 텍스트 파일이다. 왜 쉼표로 굳이 분리했냐면, 엑셀 양식의 데이터를 프로그램에 상관없이 쓰기 위해서 데이터 형식으로 만들었다고 보면 된다. 엑셀에서는 '다른 이름 저장' 기능으로 사용 가능하다. notepad로 열면 쉼표로 데이터가 구분되어 표현됨 💐 여기서 text 파일 형태로 데이터 처리 시 문장 내에 들어가 있는 "," 등에 대해 전처리 과정이 필요하다. 파이썬에서는 간단히 CSV 파일을 처리하기 위해 csv 객체를 제공해줌. (+한글로 되어 있다면 별도 한글.. Computer Science/Basics 2022. 7. 15.
File/Exception/Log Handling * coursera 강좌에서 exceptiong handling에 대해 간략하게 배웠다. 관련 내용에 대해 좀 더 자세히 알아보자!! Python Basics(1). (from Coursera) 1) Python Basics # Types e.g) 11 (int) / 12.32 (float) - can check the specifics of floats 'sys.float_info' / "I love Python" (str) / True, False (bool) → By using the data type, we can see the a.. sh-avid-learner.tistory.com Excpetion Handling ① 예상 가능한 예외: 발생 여부를 사전에 인지할 수 있는 예외로, 개발자가 반.. Python/Fundamentals 2022. 7. 14.
Odds Ratio & log(Odds Ratio) 🌟 일명 '오즈(Odds)'라고 해서 로지스틱 회귀 모델을 구하는 식에 사용된다고 예전 로지스틱 포스팅에서 배운 적이 있다. 🌟 '오즈비'와 로그를 씌운 '로그오즈비' 두 가지 개념에 대해서 자세히 알아보자 🦔 1> odds ex) 'the odds in favor of my team winning the game are 1 to 4 ... ' → $\cfrac{1}{4}$ = 0.25 - 즉 내 팀이 게임에 이길 odds는 0.25이다 🌟 여기서 중요한 건 odds of p는 probability of p 확률이 아니라는 점 💫 ≫ odds는 $\cfrac{p}{1-p}$라면, probability는 $\cfrac{p}{1}$이다. ≫ (1-p)인 확률에 대한 p인 확률을 odds로 나타낼 수 있다. .. Math & Linear Algebra/Concepts 2022. 7. 11.
python OOP * python에서 반드시 알아야 할 OOP(Object-Oriented Programming) 개념에 대해서 종전보다 좀 더 깊게! 알아보자 😍 → 실제 세상을 모델링 concepts> * 객체 - 속성(attribute) & 행동(action) 두 개를 가짐 → OOP는 이러한 객체 개념을 프로그램으로 표현한다. 속성은 변수(variable), 행동은 함수(method)로 표현됨 * OOP는 설계도에 해당하는 class와 실제 구현체인 instance로 나눔 * __init__은 객체 초기화 예약 함수 + parameter로 여러 속성 정보 + self ★ __는 특수한 예약 함수나 변수 그리고 함수명 변경 맨글링(name mangling)으로 사용 - magic method ex) __main__,.. Python/Fundamentals 2022. 7. 7.
MLE for the normal distribution 🔊 저번 시간에 MLE에 대해서 배웠다. 그리고 예제로 MLE 기법을 logistic regression에 적용해 최적의 sigmoid 함수를 어떻게 구하는 지 수학적으로 수식을 통해 알아보았다. 🔊 이번 시간에는 logistic이 아닌 normal distribution에 MLE 기법을 적용해 주어진 data를 가장 잘 설명하는 normal distribution의 두 모수인 $\mu$와 $\sigma$를 찾아 최적의 normal distribution을 알아보는 시간을 가져보려 한다. Maximum Likelihood Estimation(MLE) 🌟 로지스틱 회귀 포스팅에서 MLE기법을 통해 model을 결정한다고 하였다. 로지스틱 회귀의 식을 더 deep하게 수학적으로 들어가, 어떤 모델을 고를 지.. Statistics/Concepts(+codes) 2022. 6. 27.
Maximum Likelihood Estimation(MLE) 🌟 로지스틱 회귀 포스팅에서 MLE기법을 통해 model을 결정한다고 하였다. 로지스틱 회귀의 식을 더 deep하게 수학적으로 들어가, 어떤 모델을 고를 지 수식으로 연산하는 과정에서 MLE가 핵심으로 사용되는데, 이번 시간에는 MLE를 수학적인 개념으로 좀 더 자세하게(꽤 deep하게) 알아보고자 한다. 🌟 추가로 아래 그림에서 보듯이 추후 포스팅에서는 로지스틱 회귀와 MLE를 같이 연관시켜 알아보자! * 정의 & concepts> 🌟 모수적인 데이터 밀도 추정방법으로, 파라미터 $\theta = (\theta_1, ... , \theta_m)$으로 구성된 어떤 확률밀도함수 $P(x|\theta)$에서 관측된 표본 데이터 집합을 $x = (x_1, x_2, ... , x_n)$이라 할 때, 이 표본들에.. Statistics/Concepts(+codes) 2022. 6. 26.
(L1 Regularization) → LASSO Regression (concepts) 🥑 과적합 문제를 피하기 위해 기존회귀계수들의 제곱합에 λ penalty를 부과해 새로운 data에 알맞은 예측을 하게끔 해주는 Ridge 규제에 대해 배웠다. (L2 Regularization) → Ridge Regression (concepts) ** 우리는 저번 포스팅에서 Supervised Learning 중 Regression의 일종인 'linear regression'에 대해 학습했다. ☝️ 위 그림에서 보다시피 linear 선형 regression으로는 많은 종류의 model이 있음을 확인할.. sh-avid-learner.tistory.com (L2 Regularization) → Ridge Regression (w/scikit-learn) 😼 저번 포스팅에서 Ridge 회귀가 무엇인지 개.. Machine Learning/Models (with codes) 2022. 6. 23.
feature scaling 👩‍🍳 data를 요리하기 위해 빈번히 해주는 여러 기법들이 있다. 이 기법들을 배워보는 시간을 가지려 한다. feature scaling은 대표적인 방법 중 하나로, data feature별 제각기 다른 범위를 갖고 있음을 파악하고 동일한 범위, 동일한 선상에 맞게 설정해 scaled된 여러 row별 data를 서로 쉽게 비교할 수 있게끔 해준다. scaling을 안한다면, 범위가 더 넓은 variable이 값 자체만으로 상대적으로 다른 variable에 비해 modeling에서 불공평하게 많은 비중을 차지할 수 있어, 해당 문제점을 방지하기 위해 scaling이 권장된다. 👩‍🍳 scaling과 standardization? → scaling은 기존 주어진 value의 range를 바꾸어 다른 분포로.. Computer Science/Basics 2022. 6. 22.
Adjusted R-Squared vs. R-Squared 👨🏾‍💻 예전 포스팅에서 R-Squared에 대해 다룬 적이 있었는데, 이의 한계를 보완한 adjusted r-squared와 같이 비교하면서 심층적으로 알아보도록 하자. All About Evaluation Metrics(1/2) → MSE, MAE, RMSE, R^2 ** ML 모델의 성능을 최종적으로 평가할 때 다양한 evaluation metrics를 사용할 수 있다고 했음! ** (supervised learning - regression problem에서 많이 쓰이는 평가지표들) - 과정 (5) - 😙 그러면 차근차.. sh-avid-learner.tistory.com 1> R-squared (coefficient of determination) → r-squared는 모델이 얼마나 예측력이 .. Machine Learning/Fundamentals 2022. 6. 19.
Auto-correlation + Durbin-Watson test 🌷 residual plot에서의 error관련 성질로 auto-corrleation을 무조건 짚고 넘어가는 경우가 많은데, 해당 corrleation이 무엇인지 알아보고 🌷 해당 auto-correlation이 존재하는 지 알아보기 위한 두 가지 방법 - Durbin-Watson test & Breusch-Godfrey test를 알아보자 * linear regression model 가정 → auto-correlation concepts 🍂 위 전제 2번에서 잔차 - residual에 대해 설명할 때, 잔차를 시각화한 residual plot에서 여러 error terms 오차항이 형성하는 일종의 pattern이 존재한다면 자기상관성 auto-correlation이 존재한다고 하였다. 🍂 저번 cou.. Statistics/Concepts(+codes) 2022. 6. 17.
All About Evaluation Metrics (2/2) → MAPE, MPE * 예전 포스팅에서 모델을 평가하기 위한 여러 평가기준에 대해서 알아보았다. → 크게, MSE, MAE, RMSE, R^2 4가지의 평가기준에 대해서 알아보았는데, 이번에는 추가로 MAPE, MPE에 대해서 알아보려 함! All About Evaluation Metrics(1/2) → MSE, MAE, RMSE, R^2 ** ML 모델의 성능을 최종적으로 평가할 때 다양한 evaluation metrics를 사용할 수 있다고 했음! ** (supervised learning - regression problem에서 많이 쓰이는 평가지표들) - 과정 (5) - 😙 그러면 차근차.. sh-avid-learner.tistory.com 5. MAPE(Mean Absolute Percentage Error) → .. Machine Learning/Fundamentals 2022. 6. 11.
seaborn plots - displot, pairplot, regplot 🤹🏻‍♀️ 강력한 시각화 library seaborn의 세 개의 그래프 displot, pariplot, regplot에 대해서 알아보는 시간을 가져보려 한다. 🍡 seaborn.displot() docu https://seaborn.pydata.org/generated/seaborn.displot.html 🍡 seaborn.pairplot() docu https://seaborn.pydata.org/generated/seaborn.pairplot.html 🍡 seaborn.regplot() docu https://seaborn.pydata.org/generated/seaborn.regplot.html 1> seaborn.displot seaborn.displot(data=None, *, x=None, .. Visualizations/Various Graphs 2022. 6. 10.
K-Means Clustering (concepts + w/code) 💙 꼭 K가 들어가서 한국 부심으로 꼭 알아야(?)할 것 만 같은 데,, 필수로 알아야 하는 개념 마즘! 💙 앞서 우리가 Unsupervised Learning의 일종으로 대표적인 clustering 개념에 대해서 배웠고, 이 중 가장 대표적인 K-Means에 대해서 알아보자! Unsupervised Learning 📌 사실 ML에서 지도학습(Supervised Learning)보다 정답이 주어져 있지 않은, 비지도학습(Unsupervised Learning) 기법이 더 까다롭고, 정답이 주어져 있지 않아서 분석에 힘이 들 때가 많다. 📌 비지도학습 sh-avid-learner.tistory.com 💙 일단 k-means는 unsupervised learning 기법 중 clustering - centr.. Machine Learning/Models (with codes) 2022. 6. 8.
Unsupervised Learning 📌 사실 ML에서 지도학습(Supervised Learning)보다 정답이 주어져 있지 않은, 비지도학습(Unsupervised Learning) 기법이 더 까다롭고, 정답이 주어져 있지 않아서 분석에 힘이 들 때가 많다. 📌 아래와 같이 label이 주어져 있지 않고 여러 개의 feature vector들의 모임을 통해 machine learning model에 집어넣는 형태이다. 📌 비지도학습(Unsupervised Learning)은 '정답이 주어져 있지 않은 data 그 자체를 머신러닝 알고리즘으로 분석하거나 클러스터링(clustering; 군집화)하는 과정'이다. intro. Machine Learning 1. 개론 → ML은 빅데이터를 분석할 수 있는 강력한 tool의 일종이다. 기존 통계학 .. Machine Learning/Fundamentals 2022. 6. 3.