백준 알고리즘 - 2003 - 수들의 합 2
2021. 9. 27. 09:46
⏰ 코딩테스트/리스트 탐색
코드 n, m = map(int, input().split()) arr = list(map(int, input().split())) num = 0 for i in range(n): for j in range(n+1): if sum(arr[i:j])==m: num += 1 print(num) 답은 맞지만 for 문이 2번 돌아서 시간 초과가 뜬다. n, m = map(int, input().split()) arr = list(map(int, input().split())) lt, rt, num = 0, 1, 0 sum = arr[0] while(True): if sum
두 리스트 합치기
2021. 9. 24. 11:12
⏰ 코딩테스트/리스트 탐색
두 리스트 합치기 오름차순으로 정렬이 된 두 리스트가 주어지면 두 리스트를 오름차순으로 합쳐 출력하는 프로그램을 작성하세요. ▣ 입력설명 첫 번째 줄에 첫 번째 리스트의 크기 N(1
백준 알고리즘 - 10804 - 카드 역배치
2021. 9. 24. 10:09
⏰ 코딩테스트/리스트 탐색
풀이 swap으로 앞 뒤를 바꾸어 준다. 올림 할 필요 없이 +1 해준 후 //2 로 몫을 구한만큼 반복해주면 된다. 리스트를 1부터 20까지 만들어주면, 인덱스가 0 부터 시작하므로 조금 계산을 해야한다. 은근 실수가 나올 수 있다. 그냥 0부터 시작한대로 두고 제일 마지막에 pop(0) 으로 0을 빼주면 된다. 코드 a = list(range(21)) for _ in range(10): s, e = map(int, input().split()) for i in range((e-s+1)//2): a[s+i], a[e-i]=a[e-i], a[s+i] a.pop(0) for x in a: print(x, end=' ')
리액트
2021. 9. 18. 17:30
📱 Full-Stack
React 프로젝트 구조 npm에서는 외부 모듈들을 다운 받을 수 있다. node _modules : 다운받은 모듈들이 들어가 있다. package.json : 이 프로그램이 관련된 설정이 들어가 있다. (ex 버전, 모듈) public 에는 보통 이미지 파일들을 추가한다. 기본 html 파일이 존재한다. src 폴더에서 코드를 짠다. 보통 js와 css를 이용해서 코딩을 하게 된다. 결과적으로 리액트는 Babel 이나 Webpack등의 도구를 이용해서 public 폴더의 index.html에 새로운 html요소들을 추가하게 된다. 리액트가 처음 시작할 때 index.js를 먼저 실행시킨다. 컴포넌트 (Component) 리액트의 핵심개념이 바로 Component 이다. 컴포넌트는 UI를 표현하는 요소로..
숫자만 추출
2021. 9. 16. 16:11
⏰ 코딩테스트/리스트 탐색
숫자만 추출 문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만듭니다. 만들어진 자연수와 그 자연수의 약수 개수를 출력합니다. 만약 “t0e0a1c2h0er”에서 숫자만 추출하면 0, 0, 1, 2, 0이고 이것을 자연수를 만들면 120이 됩니다. 즉, 첫 자리 0은 자연수화 할 때 무시합니다. 출력은 120를 출력하고, 다음 줄에 120의 약수의 개수를 출력하면 됩니다. 추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다. 입력설명 첫 줄에 숫자가 썩인 문자열이 주어집니다. 문자열의 길이는 50을 넘지 않습니다. 출력설명 첫 줄에 자연수를 출력하고, 두 번째 줄에 약수의 개수를 출력합니다. 입력예제 1 g0en2Ts8eSoft 출력예제 1 28 6 코..
회문 문자열 검사
2021. 9. 16. 09:47
⏰ 코딩테스트/리스트 탐색
회문 문자열 검사 N개의 문자열 데이터를 입력받아 앞에서 읽을 때나 뒤에서 읽을 때나 같은 경우(회문 문자열)이면 YES를 출력하고 회문 문자열이 아니면 NO를 출력하는 프로그램을 작성한다. 단 회문을 검사할 때 대소문자를 구분하지 않습니다. 입력설명 첫 줄에 정수 N(1
ML - fit(), transform() 과 fit_transform()의 차이
2021. 9. 15. 20:39
💡 AI/ML
사이킷런은 데이터를 변환하는 대부분의 로직에서 fit()과 transform()을 쌍으로 사용합니다. 예를 들어 sklearn.preprocessing의 StandardScaler, MinMaxScaler 나 PCA클래스, 그리고 텍스트의 Feature Vectorization 클래스들(CountVectorizer, TFIDF등) 모드 fit()과 transform()을 같이 이용합니다. 변환만을 생각한다면 fit() , transform()을 함께 사용하지 않고 transform()만 사용하면 될텐데 두개 메소드를 함께 사용하는 이유가 아래와 같이 있을 거라 추정됩니다(이 중 두번째 이유가 중요합니다. ) 사이킷런의 지도학습의 주요 메소드인 fit()과 predict()와 비슷한 API로 사용자들의 보..
ML - Estimator의 fit()과 비지도 학습의 fit()의 차이
2021. 9. 15. 20:31
💡 AI/ML
Estimator 이해 및 fit(), predict() 메서드 사이킷런은 API 일관성과 개발 편의성을 제공하기 위한 노력이 엿보이는 머신러닝 학습에 최적인 패키지입니다. 사이킷런은 머신러닝 모델 학습을 위해서 fit() 메서드와 학습된 모델의 예측을 위해 predict() 메서드를 제공합니다. 사이킷런에서는 분류 알고리즘을 구현한 클래스를 Classifier로, 회귀 알고리즘을 구현한 클래스를 Regressor로 지칭하고, 이 둘을 합쳐 Estimator 클래스라고 부릅니다.(지도학습의 모든 알고리즘을 구현한 클래스를 통칭함) 이 Estimator 클래스는 fit()과 predict()만을 이용해 간단하게 학습과 예측 결과를 반환합니다. Scikit-learn class 구현 클래스 Estimator..
ML - 분류
2021. 9. 15. 16:53
카테고리 없음
분류 성능 평가 지표 정확도 (Accuracy) 오차행렬 (Confusion Matrix) 정밀도 (Precision) 재현율 (Recall) F1 스코어 ROC AUC 정확도는 불균일한 데이터 셋이 있을 경우 양날의 칼이 될 수 있으므로 잘 사용되지는 않는다. 이진분류에서 사용되는 것은 따로 있다. 오차행렬 정밀도 = TP / (FP + TP) : 예측을 P로한 것들 중 예측과 실제가 P인 경우 재현율 = TP / (FN + TP) : 실제가 P인 것들 중에 예측과 실제가 P인 경우 분류하려는 업무의 특성상 정밀도 또는 재현율이 특별히 강조돼야 할 경우 분류의 결정 임계값(Threshold)을 조정해서 정밀도 또는 재현율의 수치를 높일 수 있다. 하지만 정밀도와 재현율은 상호 보완적인 평가 지표이기 때..
ML - 타이타닉 생존자 예측
2021. 9. 15. 16:15
💡 AI/ML
데이터 전처리 Null 처리 불필요한 속성 제거 레이블 인코딩 수행 = 간략하게 하기 위함 모델 학습 및 검증/예측/평가 모델 학습 : 결정트리, 랜덤포레스트, 로지스틱 회귀 학습 비교 검증 평가 : K-fold 교차 검증, cross_val_score(), GridSearchCV() 수행 1.1 데이터 확인 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline titanic_df = pd.read_csv('./titanic_train.csv') titanic_df.head(3) 분석 시작 전 : 등급(높은 등급 먼저), 성별(여성), 나이(어린아이, 노약자)..
ML - 정규화
2021. 9. 15. 15:34
💡 AI/ML
Standardization(표준화) vs Normalization(정규화) 표준화 : 데이터의 피처 각각이 평균이 0이고 분산이 1인 가우시안 정규분포를 가진 값으로 변환하는 것을 의미한다. 정규화 : 서로 다른 피처의 크기를 통일하기 위해 크기를 변환해주는 개념이다. 막 너무 크고 너무 작고 이런걸 편하게 하기 위해서 쓴다. StandardScaler : 평균이 0, 분산이 1인 정규 분포 형태로 변환 MinMaxScaler : 데이터 값을 0과 1 사이 값으로 변환(음수가 있으면 -1에서 1사이 값으로 변환) 1. iris 데이터의 평균, 분산 값 from sklearn.datasets import load_iris import pandas as pd # 붓꽃 데이터 셋을 로딩하고 DataFrame..
ML - 레이블 인코딩, 원핫 인코딩
2021. 9. 15. 15:25
💡 AI/ML
데이터 전처리 (Preprocessing) 머신러닝은 데이터의 영향을 받는다. 쓰레기 값이 들어가면 쓰레기 같은 결과가 나온다. 데이터 클린징 결손값 처리 (Null/NaN 처리) : 결손값이 없어야 한다. 데이터 인코딩 (레이블, 원핫인코딩) : 머신러닝 알고리즘은 숫자형 값만 받아드린다. 데이터 스케일링 : 정규화, 표준화 등 ex) 신장,몸무게 맞춰줄 때 이상치 제거 : 택도 없는 값 제거해주는 것 Feature 선택, 추출 및 가공 : 어떤 Feature들만 선택하면 훨씬 예측 성능이 좋을 수 있다. 1. 레이블 인코딩(Label encoding) 문자열로 들어간 코드 값을 숫자형으로 매핑하는 것 상품 분류가 [TV, 냉장고, 전자렌지] 이렇게 되어있을 때, [0,1,2] 이런식으로 바꿔준다. f..
javascript
2021. 9. 15. 11:48
📱 Full-Stack
var, let, const 차이 https://velog.io/@bathingape/JavaScript-var-let-const-차이점 //1. let은 한번 선언된 변수에 다시 새롭게 선언할 수 없어요. let num2 = 20; num2 = "hello"; let num2 = 'Bob'; // `${name} 입니다` conditional ternary operator(3항 연산자) const language = 'javascript'; if(language === 'javascript'){ console.log('재밌다') }else{ console.log('재미없다') } if 조건문의 단축 형태 language === 'javascript' ? console.log('재밌다') : consol..
백준 알고리즘 - 2476 - 주사위 게임
2021. 9. 14. 16:14
⏰ 코딩테스트/구현
코드 N = int(input()) ans = 0 for i in range(N): a, b, c = map(int, input().split()) if a==b and b==c and c==a: tmp = 10000 + 1000*a elif a==b and b!=c: tmp = 1000 + 100*a elif b==c and a!=b: tmp = 1000 + 100*b elif a==c and a!=b: tmp = 1000 + 100*a else : tmp = max(a,b,c)*100 if ans ans: ans = money print(ans) sort로 오름차순 정렬 후 비교하는 것이 더 코드 길이를 줄일 수 있다.
뒤집은 소수
2021. 9. 10. 21:50
⏰ 코딩테스트/구현
N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 수를 출력하는 프로그램을 작성하세요. 예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출력한다. 단 910를 뒤집으면 19로 숫자화 해야 한다. 첫 자리부터의 연속된 0은 무시한다. 뒤집는 함수인 def reverse(x) 와 소수인지를 확인하는 함수 def isPrime(x)를 반드시 작성하여 프로그래밍 한다. 입력설명 첫 줄에 자연수의 개수 N(3