always_here

지식을 공유하고 함께 성장하는 엔지니어 as_always 입니다

AS_ALWAYS
728x90

분류 전체보기 73

API와 마이데이터

API (Application Programming Interface) Open API : 사용자가 일방적으로 웹 검색 결과 데이터 및 사용자 화면(기능)을 제공받는데 그치지 않고 직접 응용프로그램과 서비스를 개발할 수 있도록 외부에 공개된 API를 뜻한다. 따라서 오픈API를 제공하는 것은 개방형 혁신을 지향함이라고 느낄 수 있다. 2022년 01월 05일 API 방식의 마이데이터가 시작되었다. 이전까지는 서비스 업체가 직접 다른 업체의 데이터를 긁어오는 "스크래핑 방식"을 사용했다면, API 방식이 의무화되면서 사용자 측면에서 기존보다 보안이 강화된 서비스를 이용할 수 있다. 이는 사용자가 원하는 정보만 선택해 정보를 활용할 수 있도록 할 수 있기에 사용자의 정보 수집이 제한되기 때문이다. 또한 AP..

핀테크 교육/IT 2023.10.01

주가 보조지표

MACD 단기 이동평균선과 장기 이동평균선의 수렴과 확산을 나타내는 지표, MACD가 0보다 작았다가 양수로 변할 때 추세가 전환되었다고 한다. MACD가 Signal을 상향돌파(최근 12일 주가가 상승흐름이 과거 26일보다 빠르다)하면 매수, 하향돌파하면 매도 타이밍 # 지수 이동 평균 # MACD는 12, 26일간의 지수이동평균을 기준으로 한다. # 단순이동평균이란 평균값을 구하는 대상을 모두 같은 가중치로 본다. # 지수이동평균이란 최근 추가된 데이터의 가중치를 높이는 방식 short = 12 long = 26 signal = 9 macd_short = data.ewm(span = short).mean() macd_long = data.ewm(span = long).mean() macd = macd..

구름톤 챌린지 Day13, Day15[탐색과 DP]

[문제 13] n, K = map(int, input().split()) graph = [] for i in range(n): graph.append(list(map(int, input().split()))) moves = [[1, 0], [-1, 0], [0, 1], [0, -1]] result = 0 def dfs(x, y): stack = [[x,y]] cnt = 0 M = graph[x][y] while stack: x, y = stack.pop() if graph[x][y] != M: continue graph[x][y] = 0 cnt += 1 for dx, dy in moves: nx, ny = x + dx, y + dy if 0 이렇게하면 몇개 케이스에서 에러가 나오는데, 1조각당 포만감이 ..

알고리즘 2023.09.10

구름톤 챌린지 Day 11 - Day 12[탐색과 DP]

[문제 11] N = int(input()) A, B = map(int, input().split()) dp = [9999999 for _ in range(N + 1)] dp[0] = 0 for i in range(N + 1): if i - A >= 0: dp[i] = min(dp[i], dp[i-A] + 1) if i - B >= 0: dp[i] = min(dp[i], dp[i-B] + 1) if dp[-1] == 9999999: print(-1) else: print(dp[-1]) 동적프로그래밍 문제는 제대로 풀어본 적이 없어서 이 문제 또한 매우 간단해보이지만 어렵게 느껴졌다. 먼저 dp 배열은 통증 수치가 i 일 때, 통증 수치를 0으로 만들기 위해 필요한 아이템의 최소 개수라 설정한다. < dp..

알고리즘 2023.09.08

구름톤 챌린지 Day09 - Day10 [완전탐색]

[ 문제 9 ] N, K = map(int, input().split()) matrix = [] for i in range(N): matrix.append(list(input().split())) result = [[0] * N for i in range(N)] dx = [0, -1, 1, 0, 0] dy = [0, 0, 0, 1, -1] for k in range(K): xx, yy = map(int, input().split()) xx -= 1 yy -= 1 for i in range(5): if 0 10 % 10 = 0 우측 끝에 도달하여 왼쪽 끝으로 돌아간 경우 -> -1 % 10 = 0 왼쪽 끝이 -1인 경우에 10으로 나눈 나머지는 9가 나온다 오른쪽 끝으로 간 경우 -> (x + dx[0])..

알고리즘 2023.09.04

구름톤 챌린지 Day06 - Day08 [완전탐색]

[ 문제 6 ] from itertools import combinations N = int(input()) S = input() P = set() blank = [i for i in range(1, N)] com = list(combinations(blank, 2)) for f, s in com: P.update([S[:f], S[f:s], S[s:]]) p = list(P) p.sort() result = 0 for f, s in com: tmp = 0 tmp += p.index(S[:f]) + 1 tmp += p.index(S[f:s]) + 1 tmp += p.index(S[s:]) + 1 result = max(result, tmp) print(result) 물론, 이중 for문을 사용해서 부분 ..

알고리즘 2023.08.31

구름톤 챌린지 Day01 - Day05 [구현]

[ 문제 1 ] W, R = map(int, input().split()) RM = int(W * (1 + R / 30)) print(RM) 소수점 이하의 값을 버릴 때는 int()를 사용하면 편리하다. [ 문제 2 ] N = int(input()) T, M = map(int, input().split()) total_min = (T * 60) + M for i in range(N): total_min += int(input()) H = (total_min // 60) % 24 M = total_min % 60 print(H, M) 위 문제와 같이 단위가 다른 ex) 시, 분 문제는 먼저 단위를 통일한 후에 계산하고 마지막에 문제에서 제시한 조건으로 단위를 나눠서 출력하는 것이 편한 것 같다. 문제에서 ..

알고리즘 2023.08.30

가상환경 관리

1. 설치 확인 conda --v 2.가상환경 생성 Conda create -n python= conda create -n test python=3.11 3.가상환경 리스트 확인 conda env list 4.가상환경 활성화 Conda activate 으로 활성화 시켜준다. conda activate test 5.가상환경 비활성화 Conda deactivate conda deactivate test 6.가상환경에 패키지 설치하기 conda install conda install pandas 7.가상환경 제거 conda remove --name --all whl 파일 생성 [wheelhouse 폴더 생성, 패키지들 whl 파일로 생성] pip wheel --wheel-dir=wheelhouse -r req..

카테고리 없음 2023.08.27

[프로그래머스] 소수찾기 (Python)

https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조합 (combination) 순서를 고려하지 않기 때문에 [A, B, C]의 리스트에서 2개의 원소를 골라 나열하면 [(A, B), (A, C), (B, C)] 가 나오게 된다. 조합은 (A, B)와 (B, A)는 같은 것으로 취급한다. from itertools import combinations arr = ['A', 'B', 'C'] result = combinations(arr, 2) pr..

알고리즘 2022.07.24
728x90