분류 전체보기 78

[TIL] 프로그래머스 - 타겟 넘버 (bfs/dfs) / 정렬 알고리즘 (1) - 이론

[Today I Learned] # 프로그래머스 - 타겟 넘버 문제 설명 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다.-1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 주어지는 숫자의 개수는 2개 이상 20개 이하입니다.각 숫자는 1 ..

[TIL] DFS & BFS (feat. 스택, 큐 , 재귀 함수) - (2) 적용

[Today I Learned] # 이코테 - 음료수 얼려 먹기 문제 N × M 크기의 얼음 틀이 있다. 구멍이 뚫려 있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시된다.구멍이 뚫려 있는 부분끼리 상, 하, 좌, 우로 붙어 있는 경우 서로 연결되어 있는 것으로 간주한다.이때 얼음 틀의 모양이 주어졌을 때 생성되는 총 아이스크림의 개수를 구하는 프로그램을 작성하라.다음의 4 × 5 얼음 틀 예시에서는 아이스크림이 총 3개가 생성된다 입력 첫 번째 줄에 얼음 틀의 세로 길이 N과 가로 길이 M이 주어진다. (1

[TIL] DFS & BFS (feat. 스택, 큐 , 재귀 함수) - (1) 이론

[Today I Learned] # 스택 - 선입후출 자료구조 - Python에서는 List로 구현 stack = [ ] stack.append(5) # [5] stack.append(2) # [5,2] stack.pop() # [5] stack.append(1) # [5,1] stack.append(4) # [5,1,4] print(stack[::-1]) # 최상단 원소부터 출력 ; [4,1,5] print(stack) # 최하단 원소부터 출력 ; [5,1,4] # 큐 - 선입선출 자료구조 - Python에서는 Collections.deque(덱)으로 구현 - List로도 구현할 수 있지만 시간 복잡도 이슈. (특정 인덱스의 원소 꺼내는 pop 연산 후에, 전체적으로 인덱스 재조정하는 과정 필요.) f..

[TIL] 구현(Implementation) - 시뮬레이션, 완전 탐색 / 이코테 - 상하좌우, 시각, 왕실의 나이트, 문자열 재정렬

[Today I Learned] # 구현 - 풀이를 떠올리는 건 쉽지만 소스코드로 옮기기 어려운 문제들 - 2차원 공간 → 행렬(Matrix) 많이 등장 (파이썬은 2차원 리스트) - 시뮬레이션 및 완전 탐색 문제에서는 2차원 공간에서의 방향 벡터가 자주 활용됨 # 이코테 - 상하좌우 여행가 A는 N × N 크기의 정사각형 공간 위에 서 있다. 이 공간은 1 × 1 크기의 정사각형으로 나누어져 있다.가장 왼쪽 위 좌표는 (1, 1)이며, 가장 오른쪽 아래 좌표는 (N, N)에 해당한다.여행가 A는 상, 하, 좌, 우 방향으로 이동할 수 있으며, 시작 좌표는 항상 (1, 1)이다. 우리 앞에는 여행가 A가이동할 계획이 적힌 계획서가 놓여 있다 계획서에는 하나의 줄에 띄어쓰기를 기준으로 L, R, U, D ..

[TIL] 그리디 알고리즘(탐욕법) / 프로그래머스 - 체육복

[Today I Learned] # 그리디 알고리즘 (탐욕법) - 현재 상황에서 지금 당장 좋은 것만 고르는 방법 - 단순히 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해를 구할 수 있는지 검토해야 - 일반적인 상황에서는 최적의 해를 보장할 수 없을 때가 많음 - 다만 코딩 테스트에서의 그리디 문제는 대부분 탐욕법으로 얻은 해가 최적의 해가 되는 상황에서, 이를 추론할 수 있어야 풀리도록 출제됨 ex. 거스름돈 문제 # 프로그래머스 - 체육복 https://programmers.co.kr/learn/courses/30/lessons/42862 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순..

Object Detection에서는 Train/Valid set을 어떻게 나눌까? -Stratified Group KFold (feat. sklearn)

CV를 나누기 어려운 Object Detection의 특징 Object Detection은 이미지 내에서 Object의 위치를 찾고(Localization), 어떤 종류인지 분류(Classification)하는 태스크입니다. 위의 슬라이드처럼 한 이미지에 한 개의 Object가 있을 수도, 여러 개의 Object가 있을 수도 있습니다. 하지만 후자와 같은 이미지가 당연히 세상에는 더 많겠죠? 한 이미지에 여러 개의 Object가 있다는 말은 곧 1개의 데이터에 여러 개의 label이 붙는다라고도 해석해볼 수 있습니다. 이런 경우에는 일반적으로 사용되던 CV 방법들을 적용하기가 어려워집니다. Random split 혹은 이미지 단위로 Train set과 Validation set을 나누게 될 경우, 특정한..

[4] Risk Adjusted Returns (RAR) / Diversification and Portfolio Optimization / Portfolio Analysis

Risk Adjusted Returns (RAR) - 어떤 펀드 혹은 포트폴리오가 더 나은지 비교, 결정할 수 있는지? - RAR metric 통해 Risk와 Return 모두 고려 Sharpe ratio - 일반적으로 사용되는 RAR measure - the average return earned in excess of the risk-free rate per unit of volatility or total risk - risk-free rate : 무위험 수익률. 말 그대로 위험이 전혀 없는 보장된, 이론적인 수익. 투자에서 위험이 전혀 내포되지 않은 순수한 투자의 기대수익률. - 실제 계산은 다음과 같이 한다. - 분자) Adj Close의 percent change의 평균 - (risk_free..

[3] Volatility / Distribution of Returns

Volatility - 정의. Liability to change rapidly and unpredictably, especially for the worse >> In our context, how much price/value tends to change from one period to the next - Risk에 대해 이해하고 관리할 필요 있음 - 이 riskiness를 어떻게 양적화하고 비교할 수 있을지? Calculating annualized historical volatility - Vol_annualized = Vol_daily * root (252) # Calculating the standard deviation of daily returns + 252 = 365일 중 trading..

[2] ETF / Annualized Returns / Correlation

Exchange Traded Funds (ETFs) - 다양한 Financial Instruments에 투자하는 펀드. 주식처럼 쉽게 사고 팔 수 있음 - 특정 주가 지수에 들어 있는 주식을 편입해 운용하는 펀드를 패시브 펀드(Index hugging), 시장 성과를 초과하는 수익률을 목표로 하는 액티브 펀드가 있음 eg. SPY, TLT, ARKK + Yahoo finance 데이터 불러오는 방법 + 우리나라는 야후 망해서(?) 안쓰는데 오랜만에 들어서 신기했다. 야후 꾸러기도 아시나요 다들? 😂 Annualized Returns - 투자 기간이 다를 경우 수익률 비교가 어렵다는 문제를 해결하기 위해 고안된 normalize 방법 - Annual return의 평균 / 전체 return을 투자 기간으로..

[1] Exploring / Manipulating Timeseries Data (Moving Average, Return series)

Business Problem Context 주가 데이터 분석을 통해 투자를 해야 할지? / 관련된 risk로는 어떤 것이 있는지? / 어떤 투자가 더 좋을지? / 수익을 얼마나 낼 수 있을지? 등의 질문에 대답할 수 있음 Stock trade data # Data periodicity - Tick by tick - Intraday ; periodic - Daily / Weekly / Monthly # Data structure - Period open / high / low / close - Period volume Timeseries data - 금융 데이터 분석의 기본적인 형태인 Timeseries(시계열) 데이터 - eg. Stock prices / Trading volume / Revenue /..