본문 바로가기
300x250

전체 글94

[코딩테스트] 그리디 알고리즘(Greedy), 탐욕법 그리디 알고리즘(Greedy) : 탐욕법 그리디 알고리즘이 뜻하는 것은 한 마디로 지금 상황에서, 지금 당장 좋은 것만 고르는 방법이다. 문제를 풀기 위한 최소한의 아이디어가 중요하며, 정당성(단순히 가장 좋아 보이는 걸 반복적으로 선택해도 최적의 해를 구할 수 있는가?) 검토 및 분석이 필요하다. 사실 일반적으로 그리디 알고리즘은 최적의 해를 보장할 수 없을 때가 많다. 하지만 코딩 테스트에서 대부분의 그리디 문제는 이 그리디 알고리즘으로 얻은 해가 최적의 해가 되는 상황에서, 이를 추론할 수 있어야 풀리도록 출제된다. 그러면 언제 이 그리디 알고리즘으로 구한 값이 최적의 해가 될까? 대표적으로 거스름돈 문제가 있다.(거슬러 주어야 할 동전의 최소 개수를 구하기) 문제1 : 거스름돈 가장 큰 화폐 단위.. 2022. 12. 23.
[코딩테스트] 파이썬 문법 기초 복습 : 입출력부터 자주 쓰이는 라이브러리까지 자주 사용되는 입력 방법 input() : 한 줄의 문자열을 입력받는 함수 map() : 리스트의 모든 원소에 각각 특정한 함수를 적용 ex)공백 기준으로 구분된 데이터 입력받을 때 n = int(input()) data = list(map(int, input().split())) data.sort(reverse=True) print(data) a,b,c = map(int,input().split()) #이렇게 변수 갯수를 지정해줄 수도 있다. print(a,b,c) 빠르게 입력 받으려면 sys library의 sys.stdin.readline() 메서드를 이용하면 된다. 단, 입력 후 enter가 줄 바꿈 기호로 입력되므로 rstrip() 메서드를 그 다음에 사용해주자. import sys data =.. 2022. 12. 20.
[코딩테스트] 파이썬 문법 기초 복습 : 자료형 파이썬으로 코딩테스트를 준비하는 만큼, 문법의 기초를 탄탄히 다지는 것 또한 중요하다. 그 중, 파이썬 자료형에 대해서 정리해보자. 정수형, 실수형, 복소수형, 문자열, 리스트 튜플, 사전(딕셔너리) 등이 있다. 정수형 Integer : 양의 정수, 음의 정수, 0. 실수형 Real Number. 소수점 아래의 데이터를 포함하는 수 자료형. 소수부나 정수부가 0일 때 0을 생략할 수도 있다. a=5. print(a) > 5.0 a = -.7 print(a) > -0.7 e나 E를 이용해서 지수 표현 방식 이용 가능함. 1e9 == 10의 9제곱을 의미하게 됨. 지수 표현 방식은 임의의 큰 수를 표현하기 위해 자주 사용됨. 최단 경로 알고리즘에서는 도달할 수 없는 노드에 대하여 최단 거리를 무한(INF)로.. 2022. 12. 19.
[코딩테스트] 코딩테스트 및 관련 알고리즘의 개요 바쁜 일정에 공부를 하다보면 포스팅까지 옮겨 적지 않고 혼자만 공부하고 보관하게 되는 경우가 많은 듯 하다. 그 점이 아쉬워서, 조금 정리가 잘 되지 않더라도 블로그에 포스팅을 다시 해 보기로 했다. 최근에는 동빈나님의 이것이 코딩 테스트다, 일명 이코테 유튜브를 보면서 코딩테스트 준비를 시작해보기로 했다. 코딩테스트란 기업에서 문제 해결 역량을 평가하기 위해 활용하는 시험으로, 여러 온라인 저지 사이트가 있지만 나는 컴퓨터공학 지식이 없기 때문에 우선 프로그래머스의 레벨0부터 차근차근 문제를 풀어볼 생각이다. 알고리즘 문제를 위한 알고리즘 코드를 깃헙 등에 많이 올리기도 하지만, 나는 개인적으로도 다시 보고 싶고, 기초 알고리즘 지식도 정리를 하고 싶어 블로그에 업로드를 해 보기로 했다. 먼저 코딩테스.. 2022. 12. 18.
[네이버 DataScience 스터디 8기] 부스트코스 강의 듣는 법 지난 포스팅에서 부스트코스 코칭스터디 8기가 시작되었다는 소식을 공유했다! [리드부스터 선정 후기] 네이버 Data Science 부스트코스 코칭스터디 8기 지난 9월 26일부터 10월 19일까지, 네이버의 Data Science 부스트코스 코칭스터디 8기의 모집이 있었다. 기간은 10월 27일~11월 24일 진행되는 약 한 달간의 스터디이다. 선정 결과는 10월 21일 금요일에 for-data-science.tistory.com 파이썬을 다뤄본 경험이 없다면 사전과제인 '모두를 위한 데이터 사이언스' 강좌를 듣는 것이 좋다. 부스트코스 강의가 처음인지라 간단히 공유해보자면 다음과 같은 과정을 거치면 된다. 1. 우측 상단 '나의 강좌' 중에서 내가 들을 강의를 선택한다. 2. 좌측의 커리큘럼 중, 내가.. 2022. 10. 26.
[리드부스터 선정 후기] 네이버 Data Science 부스트코스 코칭스터디 8기 지난 9월 26일부터 10월 19일까지, 네이버의 Data Science 부스트코스 코칭스터디 8기의 모집이 있었다. 기간은 10월 27일~11월 24일 진행되는 약 한 달간의 스터디이다. 선정 결과는 10월 21일 금요일에 개별로 메일 안내를 해준다고 했는데, 감사하게도 바로 어제 저녁 리드부스터에 선정되었다는 메일을 받았다! 스터디원을 부스터, 스터디리더를 리드부스터라고 지칭하여, 팀을 이뤄 매주 일정 분량의 강좌를 수강하고, 팀 미션을 토론하고 해결하는 과정에서 코딩코치에게 질문 및 피드백을 제출하게 된다. 이제 10월 24일 월요일에 오리엔테이션을 거쳐 본격적인 스터디가 시작될 예정이므로, 내가 공부하게 될 부스트코스 스터디에 대해서 간략하게 소개를 하며 나도 다시 한 번 정리하고 리드부스터로서의.. 2022. 10. 22.
[ScikitLearn] 사이킷런 교차검증 파이썬 뜻과 이유 K-Fold 우선 교차검증(Cross Validation)이란, 데이터 세트를 여러 개로 분리해서 다양하게 학습과 평가를 수행하는 것이다. 앞의 포스팅에서 설명했듯이 평가데이터를 생성하지 않고 100% 학습데이터를 만들었을 경우, 다른 새로운 데이터가 들어오면 제대로 적용하지 못하는 과적합(Overfitting) 문제가 발생하게 될 수 밖에 없다. 보통 8:2, 7:3과 같이 학습데이터와 평가데이터를 분리하는데, 이 방법도 과적합으로 인한 예측 저하가 생길 가능성이 있다. 이러한 문제를 해결하기 위해서 사용하게 된 것이 교차검증이다. 실제 어떤 새로운 데이터가 들어오더라도 잘 예측하는 것이 좋은 모델일텐데, 데이터를 마구 섞고 여러 번 학습과 평가를 거치면서 모델 최적화를 수행한다면 분명 더 좋은 모델을 생성하게 될.. 2022. 10. 12.
[ScikitLearn] 사이킷런 분류 iris 품종 예측 sklearn.datasets를 이용하면 사이킷런에서 제공하는 데이터 세트를 생성할 수 있다. 특히 iris, 붗꽃 데이터셋은 load_iris로 생성할 수 있다. 오늘은 이 데이터를 이용해서 sklearn.model_selection으로 학습/검증/예측 데이터로의 데이터 분리 및 평가, 그리고 DecisionTreeClassifier, 의사결정나무로 학습과 예측을 수행해보고자 한다. 특히 최적의 학습과 머신러닝 알고리즘 성능 튜닝을 위해 직접 입력하는 파라미터를 하이퍼 파라미터라고 한다. sklearn.tree에서는 트리 기반 ML 알고리즘을 구현한 클래스의 모임을 확인할 수 있다는 점만 확인하고 넘어가자. 먼저 필요한 라이브러리와 모듈을 import하고, 붓꽃 데이터셋을 가져와보자. 꽃받침 길이(Se.. 2022. 9. 30.
[ScikitLearn] 머신러닝 필수, scikitlearn 설치 및 사이킷런 버전 확인 머신러닝 사이킷런이란? 사이킷런(scikit-learn, skLearn)은 sciPy와 Toolkit을 합친 것이라 할 수 있는, 파이썬 기반의 머신러닝 라이브러리다. 텐서플로우, 케라스 등 딥러닝 전문 라이브러리도 활용도가 높지만, 조금 더 어렵더라도 꼭 알아야 하는 대표적인 라이브러리는 단연 사이킷런이라고 할 수 있다. 크게 분류, 회귀, 군집화, 차원 축소 4가지로 나눌 수 있으며, 아래와 같이 다양한 알고리즘들을 활용할 수 있다. 분류 알고리즘 SGD Classifier KneighborsClassifier EnsembleClassifiers NaiveBayes LinearSVC SVC Kernel approximation (cf. 회귀 알고리즘) SGD Regressor Lasso Elastic.. 2022. 9. 30.