전체 글 - Table of Contents332

SVD(Singular Value Decomposition) 🩴 저번 선형대수학 포스팅에서는 고유벡터 분해 eigendecomposition에 대해 배웠다. eigendecomposition 🤾🏽‍♂️ 저번 시간에 eigenvalue와 eigenvector에 대해 학습했다. eigenvalue & eigenvector * intro 🔅 위에서 배운 transform 연산에서 transformation에 영향을 받지 않는 부분, 즉 transform을 해도 방향이 변하지 sh-avid-learner.tistory.com 🩴 이번에는 유사한 분해 '특잇값 분해(Singular Values Decomposition)'에 대해서 알아보려 한다. SVD 정의 "모든 mxn matrix는 $A = U \Sigma V^T$ 형태로 분해된다." ※ eigendecompositi.. Math & Linear Algebra/Concepts 2023. 2. 20.
eigendecomposition 🤾🏽‍♂️ 저번 시간에 eigenvalue와 eigenvector에 대해 학습했다. eigenvalue & eigenvector * intro 🔅 위에서 배운 transform 연산에서 transformation에 영향을 받지 않는 부분, 즉 transform을 해도 방향이 변하지 않는 벡터(값은 변할 수 있음)를 '고유벡터(eigenvector)' (※ 벡터의 차원에서는 transfo sh-avid-learner.tistory.com 🤾🏽‍♂️ 이 두 가지 개념을 사용해 eigen decomposition을 간단히 알아보려 함 eigendecomposition이란? 🤾🏽‍♂️ 정의 $$A = V \Lambda V^{-1}$$ · A: nxn 정사각행렬 · V: A의 고유벡터들을 열로 갖는 행렬 · $\.. Math & Linear Algebra/Concepts 2023. 2. 19.
★BFS&DFS Intermediate I - 20 Solved★ 🙆‍♂️ 그래프로 표현되는 여러 상황에서, 각 node의 visited 유무를 따질 때 그래프 탐색 방법에 따라 DFS / BFS로 나뉨 🙆‍♂️ 깊이있게 먼저 탐색하자면 DFS / 가까운 것 먼저 탐색하자면 BFS 🙆‍♂️ DFS / BFS 모두 딱! 3가지의 준비물 필요 ※ 이 때 DFS는 stack 사용 / BFS는 queue를 사용하므로 BFS 사용 시 deque import ※ ① 2차원 graph (각 node별로 연결된 node의 번호가 list로 저장됨)② visited 여부 1차원 list (최종적으로 방문되었는 지 확인)③ 시작 node★ 1260 DFS와 BFS ★ import sysinput = sys.stdin.readlinefrom collections import dequ.. BOJ/🥈 2023. 2. 17.
★Combinatorics Intermediate I - 5 Solved★ ★ 2407 조합 ★import mathn,m=map(int,input().split())print(math.factorial(n) // (math.factorial(n-m) * math.factorial(m)))👻 위 공식만 정확히 알고 있으면 끝!  ★ 9375 패션왕 신해빈 ★import sysinput=sys.stdin.readlinefor _ in range(int(input())): n=int(input()) fashion={} if n==0: print(0) else: for _ in range(n): clothes=input().split() if clothes[1] in fashion: .. BOJ/🥈 2023. 2. 16.
★Set/Map Intermediate I - 14 Solved★ ★ 1620 나는야 포켓몬 마스터 이다솜 ★ import sysinput=sys.stdin.readlinepokemon={}N,M=map(int,input().strip().split())for i in range(N): pokemon[input().strip()]=i+1pokemon_list=list(pokemon.keys())for _ in range(M): problem=input().strip() if problem.isalpha():print(pokemon[problem]) else:print(pokemon_list[int(problem)-1]) 😽 포켓몬 번호를 말하면 포켓몬 이름을 출력하고, 반대로 포켓몬 이름을 말하면 포켓몬 번호를 출력하는, 즉 두 가지 정보 포켓몬.. BOJ/🥈 2023. 2. 15.
vector similarity 🧙🏻 scalar & vector fundamentals 포스팅에서 scalar와 vector의 개념에 대해 간단히 살펴보았다. Scalar & Vector (fundamentals) ▶ Linear Algebra 하면? 당연히 알아야 할 기본은 'Scalar(스칼라)' & 'Vector(벡터)' & 'Matrix(행렬)' ◀ 1. Scalar * concepts = "단순히 변수로 저장되어 있는 숫자" → vector 혹은 matrices에 곱해지는 경우 해당 값 sh-avid-learner.tistory.com 🧙🏻 이제는 여러 가지 vector similarity 개념에 대해서 알아보자! 🧙🏻 데이터 분석에서의 vector는 각 관측치의 변수(특성) 정보를 이용하여 관측치를 하나의 vector로 표.. Math & Linear Algebra/Concepts 2023. 2. 9.
★Binary Search Upper-Intermediate I - 6 Solved★ 😻 이분탐색 알고리즘을 적용해야 함을 인지하는 부분이 제일 중요하다. 이분탐색을 풀어야 하는 문제의 판별법은 ① 노가다성이 들어간다. 일단, 내가 원하고자 하는, 무언가를 일일이 문제의 조건을 충족해가며 비교해가는 과정이 들어간다면 이분탐색 또는 매개변수 탐색 유형임을 고려해보자 ② ~자르기와 같은 주어진 최소, 최대 일렬로 나열된 줄에서 범위를 줄여가며 최종 target(point일 수도 있고, 주어진 범위의 길이일 수도 있다)을 찾는 문제라면 이분탐색을 고려해보자★ 1654 랜선 자르기 ★ import sysinput=sys.stdin.readlineK,N=map(int,input().split())ls=[int(input())for _ in range(K)]start,end=1,max(ls) #0.. BOJ/🥈 2023. 2. 9.
jupyter notebook markdown *수시 업데이트 🫰 markdown에서 유용하다고 생각하는 부분 문법 내용 수시로 업데이트 🫰 ★ font color / 형광펜 ★redgreen This is a green colored boxThis is a red colored boxThis is a yellow colored boxThis is a blue colored box ★ 하이퍼링크 ★[Google](https://www.google.com/) ★ LaTex 수학 문법 ★→ $ 양쪽에 두 개는 가운데 정렬→ $ 양쪽에 한 개는 왼쪽 정렬 ※ latex 여러 기호 참조 (지속적 update) ※ 🧜🏻‍♂️ LaTex Grammers compilation* 까먹지 않으려고 모아둠 🌟 ⭐️ 분수 쓰기 (A 분자, B 분모) ⭐️ \cfrac{A}{B.. Computer Science/Basics 2023. 2. 7.
★정렬 최상급1 - 1문제()★ 🏅 플래티넘 이상의 난이도는 각 문제의 접근방향 뿐만 아니라, 사고과정 흐름까지 최대한 리마인드하는 방식으로 기억하자! 🏅 정렬관련 포스팅 하단 참조 🏅 정렬에는 정말 많은 알고리즘이 있다. 플래이상의 난이도급 문제에서 정렬을 어떤 방식으로 접근하는 지 알아보자 ★ 2220 힙 정렬 ★ import math n = int(input()) if n==1:print(1) elif n==2:print(2,1) elif n==3:print(3,2,1) else: arr = [3,2,1] for i in range(n-3): end=int(math.log(i+3,2)) idx=len(arr)-1 for _ in range(end): arr[idx],arr[(idx-1)//2]=arr[(idx-1)//2],arr[.. BOJ/🏅 2023. 2. 7.
Linear Equation & Linear System / Rank & det(A) Linear Equation 👐🏻 선형 방정식이란, 변수 $x_1, x_2, .. x_n$이 있고, $a_1x_1 + a_2x_2 + ... + a_nx_n = b$로 나타낼 수 있는 방정식을 뜻한다. (b와 계수 a_1, a_2, ~ a_n은 실수 또는 복소수) 👐🏻 위 equation은 이렇게도 표현 가능하다. $a^Tx = b$ $$a = \begin{bmatrix} a_1 \\ a_2 \\ \vdots \\ a_n \end{bmatrix}, x = \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix}$$ Linear System 👐🏻 선형 시스템은 앞서 설명한 linear equation이 1개 이상 구성된 시스템을 뜻한다 👐🏻 예시) ID A B.. Math & Linear Algebra/Concepts 2023. 2. 1.
★Greedy Upper-Intermediate I - 9 Solved★ ★ 11497 통나무 건너뛰기 ★ 🦒 문제를 이해하고 idea를 생각하는 게 중요! 🦒 인접한 두 통나무 높이 차의 최댓값을 최소화하는 문제① 즉, 최소화하기 위해서는 인접한 두 통나무간의 높이 차가 최소화되어야 한다② 서로간의 높이 차를 최소화하려면, 가장 큰 통나무부터 순서대로 $h_1, h_2, h_3, h_4, .... h_n$으로 정렬한 뒤, $h_1$을 정중앙에, 그 다음 $h_2, h_3$를 양옆에, $h_4, h_5$를 그 다음 양 옆에 차례대로 배치하면, 서로 간의 높이 차를 최소화할 수 있다. 🦒 greedy의 생명은 시간 단축! 매우 많은 풀이를 보며 시간 단축을 문제의 특성에 맞게 code로 고쳐가며 진행해보자 - 352ms - ① 위 그림에 맞게 제일 높은 통나무를 가운데 중.. BOJ/🥈 2023. 1. 27.
★Math & Geometry Upper-Intermediate I - 6 Solved★ ★ 1002 터렛 ★ for _ in range(int(input())): x1, y1, r1, x2, y2, r2 = map(int, input().split()) d = (x1-x2)**2 + (y1-y2)**2 if d > (r1+r2)**2: print(0) elif d == (r1+r2)**2: print(1) elif (r1+r2)**2 > d > (r1-r2)**2: print(2) else: if r1!=r2: if d == (r1-r2)**2: print(1) else:print(0) else:print(-1) 🤽🏻‍♂️ 두 원의 위치 관계에 따른 두 원 교점의 개수 🤽🏻‍♂️ .. BOJ/🥈 2023. 1. 26.