분류 전체보기(145)
-
[BOJ] # 15651번 - N과 M (3)
# 15651번 - N과 M (3) 통과 Code import sys n, m = map(int, sys.stdin.readline().split()) a = [] def solution(): if len(a) == m : return print(' '.join(map(str, a))) for i in range(1, n+1): a.append(i) solution() a.pop() solution() 시간 복잡도 : O(n^m) 공간 복잡도 : O(1)
2022.04.16 -
[Algorithm] 시간 복잡도와 공간 복잡도
'알고리즘을 효율적을 짠다 = 시간과 공간을 최소화한다' 알고리즘의 효율성을 판단할 때, 시간 복잡도(Time complexity)와 공간 복잡도(Space complexity)를 따진다. 백준, 프로그래머스에서도 알고리즘을 평가할 때 시간과 메모리 제한을 두는 것도 다 이런 이유에서다. 시간 복잡도(Time complexity) 개념와 예시 '입력값의 증가에 대한 연산 횟수 증가분' 시간 복잡도는 그저 실행 시간을 측정하는 것이 아니다. 실행 시간은 측정을 위한 프로그램이 필요할뿐더러 수행 환경에 따라 실행 시간이 달라질 수 있다. 이에 따라 입력값이 증가함에 따라 연산 횟수가 어떤 비율로 증가하는가에 초점을 두고 시간 복잡도를 측정한다. 시간 복잡도는 Worst Case, 즉 가장 최악으로 시간이 걸..
2022.04.16 -
[BOJ] # 15650 - N과 M (2)
BOJ # 15650 - N과 M (2) Back Tracking 문제이다. N과 M (1) 문제에서 살짝 변형된 것으로, (1) 문제를 풀 수 있다면 쉽게 통과할 수 있다. 통과 Code import sys n,m = map(int, sys.stdin.readline().split()) a = [] def solution(): if len(a) == m: print(' '.join(map(str, a))) for i in range(1, n+1): if i in a: continue elif len(a) >= 1 and i < max(a) : continue a.append(i) solution() a.pop() solution()
2022.04.15 -
[Algorithm] 백트레킹 개념, BOJ # 15649번
Back Tracking "가능한 모든 방법을 탐색하겠다." Back Tracking 이란? 현재 상태에서 가능한 모든 후보군을 따라 들어가며 해결책 후보를 찾되, 가능성이 없는 경로는 사전에 차단(Purning)하여 효율을 높이는 알고리즘이다. 비슷한 알고리즘으론 DFS(완전 탐색 방법)가 있다. 하지만 이 알고리즘은 말 그대로 모든 경로를 정직하게 탐색하므로, 가능성이 없는 경로까지도 깊게 파고들어 가 효율이 떨어진다. 문제 Tip DFS로 경로를 탐색하던 과정에서, 조건문 등을 걸어 가지치기를 하는 방식으로 가야 한다. BOJ # 15649번 : N과 M (1) 백트레킹는 기본적으로 재귀 문제이다. 이를 잘 생각하며 풀어보길 바란다. 통과 예시 import sys n, m = map(int, sys..
2022.04.15 -
[선형대수학] 점과 평면 사이의 거리
점과 평면 사이의 거리는 어떻게 구할 수 있을까? 물론, 여기서 거리는 최소 거리를 말한다. 그림 그리고 공식 유도해보자. 1. 그림 그리기 벡터 Q, 벡터 P는 위치 벡터다. Q는 점을 가리키며, P는 평면 위의 점 하나를 가리키고 있다. 벡터 Q, 벡터 P를 서로 뺀 다면 벡터 F가 탄생한다. 여기서 모든 공식이 시작된다. 빨간 Distance를 구하기 위해 벡터 F와 코사인 값을 곱했다. 2. 공식 유도 공식을 유도하면 다음과 같다. 3. Distance 유도 완료 솔직히 식이 그렇게 이쁘진 않다. 이걸 외울 수 있을까 싶지만, 사실문제를 풀 때 겁나 쉽다는 걸 느낄 수 있다. 4. 연습 문제 참 쉽지요?
2022.04.15 -
[MLOps] MLflow 시작 & 개념 정리
최근 MLOps란 단어가 많이 등장했다. MLOps : 프로덕션 환경에서 기계학습을 안정적으로 수행하기 위한 일련의 과정 MLOps = DevOps + Machine Learning 데이터 전처리, 분석, 모델링을 주로 공부해왔지만, 최근 들어 이런 시스템의 필요성을 느꼈다. 매 분석 순간마다 전처리-EDA-FE-Modeling-검증 과정을 거치면 시간이 많이 든다. 모델을 저장하고, 다시 서빙하는 과정도 간편화될 필요가 있다. 그런 생각의 흐름에서 MLflow를 공부하게 되었으며, 공부한 것들을 블로그로 정리해보고자 한다. [참고자료] https://github.com/mlflow/mlflow/ GitHub - mlflow/mlflow: Open source platform for the machine..
2022.04.14