본문 바로가기
반응형

Python11

코딩테스트 준비할 때 필수 개념! <완전탐색> 알아보기 이번에 알아볼 주제는 완전탐색이다. 흔히 브루트-포스 알고리즘(Brute-force algorithm)이라고 불리는데 특별한 알고리즘은 아니고 무식하게 모든 경우를 탐색해보는 알고리즘이다. 모든 경우를 다 탐색하는 알고리즘이기에 정확성은 100% 보장되지만 반대로 속도는 최악이다. 따라서 문제에서 주어진 데이터가 매우 적을 때만 사용 가능하다. 예시로 든 문제들 모두 데이터의 개수가 매우 적은 것을 확인할 수 있다. 보통 완전탐색 문제는 for문과 if 문을 활용하거나 BFS/DFS를 활용하는 경우가 대부분이다. 다른 블로그를 찾아보면 백트래킹이나 비트마스크를 활용한다고 하는데, 사실 백트래킹도 주로 DFS를 활용해서 구현하고 비트마스크도 특정 알고리즘이라기보다 bit를 활용한 일종의 테크닉이기 때문에 .. 2020. 12. 14.
코딩테스트 준비할 때 필수 개념! <기본 자료구조> 알아보기 이번에 알아볼 주제는 기존 자료구조이다. 기본 자료구조라고 하면 스택, 큐, 힙 등을 말하는데 코딩 테스트에서 출제되는 빈도는 보통 정도이다. 하지만 기본 자료구조는 다른 문제를 풀 때 기초가 되기에 꼭 알아야 한다. 스택이나 큐 같은 경우는 구현이나 DFS/BFS 문제를 해결할 때 자주 사용되고, 또 힙 같은 경우는 스택과 큐에 비해서 조금 생소하지만 모르면 못 푸는 문제들이 있기 때문에 꼭 알아둬야 한다. 사실 코딩 테스트에서 출제되는 문제들은 응시자가 기본 자료구조를 알고 있는지 확인하기 위해서 출제되는 것은 아니고, 기본 자료구조를 활용해서 어떤 아이디어로 어떻게 구현할지를 물어보는 문제가 대부분이다. 이번 포스팅에서는 기본 자료구조의 개념에 대해서 설명하기보다 파이썬에서 어떻게 기본 자료구조를 .. 2020. 12. 10.
코딩테스트 준비할 때 필수 개념! <문자열 처리> 알아보기 기본적으로 코딩 테스트를 준비할 때 그리디, 구현(Implementation), DFS/BFS, 다이나믹 프로그래밍을 주로 공부한다. 물론 이 네 가지의 출제빈도가 높기 때문에 중요한 것은 사실이다. 하지만 항상 이 부분만 출제되는 것은 아니다. 특히 카카오 같은 경우 문자열 처리가 필요한 문제를 많이 내기 때문에 문자열 처리와 정규표현식을 알고 있다면, 남들보다 쉽고 빠르게 알고리즘 문제를 해결할 수 있을 것이다. 출제된 문자열 처리 문제 2018 카카오 블라인드 채용 1차 "다트게임" 2019 카카오 개발자 겨울 인턴쉽 "불량사용자" 2019 카카오 블라인드 채용 1차 "매칭 점수" 꼭 알아둬야 할 Python 문자열 처리 함수들 개인적으로 가장 많이 쓰는 언어가 파이썬인 영향도 있지만 코딩 테스트를.. 2020. 12. 7.
[Python] 정규표현식 완전정복! * Regular Expression HOWTO를 참고하여 작성되었습니다. 정규표현식이란? 정규표현식(정규식)은 복잡한 문자열 처리를 위해 사용되는 기법으로 특정 문자열 내에서 내가 찾고자 하는 패턴을 쉽게 찾을 수 있도록 도와준다. 정규표현식은 파이썬만을 위해서 개발된 것은 아니고, 문자열 처리를 하는 모든 곳에서 사용될 수 있다. 파이썬에서는 re 모듈을 이용해서 정규표현식을 활용할 수 있다. import re 정규표현식 사용하기 1. 정규표현식 컴파일 정규표현식을 사용하기 위해서는 제일 먼저 내가 찾고자 하는 정규식 패턴을 정규식 패턴 객체( 클래스 객체)로 변환하는 과정이 필요하고 이것이 정규표현식 컴파일이다. 예를 들어 "한국 주식에 투자하는 게 미국 주식에 투자하는 것보다 낫다."라는 문장에서.. 2020. 12. 7.
Python을 활용해 원자재 가격과 주가와의 상관관계 분석 * 주피터 노트북에서 개발을 진행하였습니다. 그러면 지금부터 본격적으로 원자재 가격과 주가와의 상관관계를 수치적으로 계산해보겠다. 원자재 가격은 The World Bank에서 Monthly Price 데이터를 다운로드하여 사용하고, 주가 데이터는 이전 포스팅(링크)에서 설명하였듯이 Python FinanceDataReader 라이브러리를 사용하도록 하겠다. 원자재 가격 데이터 가져오기 먼저 다운로드한 월별 원자재 데이터를 Pandas를 활용해 DataFrame에 저장해보겠다. pandas.read_excel()을 활용해 'CMOHistoricalDataMonthly.xlsx' 파일을 읽어온다. 읽으려는 엑셀 파일 sheet name이 'Monthly Prices' 이기 때문에 sheet_name 옵션도 .. 2020. 12. 2.
Python 라이브러리를 활용한 코스피/코스닥 주가 데이터 수집 * 주피터 노트북에서 개발을 진행하였습니다. 원자재 가격과 주가와의 상관관계 분석을 위해 지난 포스팅까지는 웹 크롤링을 활용해 원자재 가격 데이터를 수집하는 방법에 대해서 알아봤다. 이번 포스팅에서는 Python FinanceDataReader 라이브러리를 활용해서 코스피/코스닥 주가 데이터를 수집해보겠다. FinanceDataReader FinanceDataReader는 한국, 미국 글로벌 시장의 금융상품 가격 데이터(주식, 지수, 환율, 선물 등)와 종목 리스팅 등 금융 데이터 수집과 분석을 위한 오픈소스 라이브러리이다. 기존에 한국 주식시장 주가 데이터를 가져오기 위해서는 네이버나 야후 Finance를 크롤링하거나 증권사에서 제공하는 api를 활용해야만 했다. 사실 두 방법 모두 어려운 것은 아니나.. 2020. 11. 29.
반응형