전체 글
공부 기록
-
데이터 과학은 SVD에서 선형대수학과 연결된다. - 딥러닝을 위한 선형대수학, 길버트 스트랭 저 이전 포스팅에서 고유값 분해에 대해 알아보았다. 하지만 우리가 대부분 다루게 될 행렬은 정사각행렬이 아닌 경우가 많을 것이다. 그렇다면 어떻게 해야할까? 특이값 분해(SVD, Singular Value Decomposition) 정사각 행렬을 대상으로 하는 고유값 분해를 mXn 행렬로 일반화한 것을 특이값 분해라고 한다. 수식으로는 $$A = U\Sigma V^T$$ 으로 표현한다. 특이값 분해는 행렬의 차원 축소를 위한 도구로 주로 사용하며, 최소제곱(least squares)에서 최적의 $\hat{a}$ 를 찾고, PCA에서 주성분인 $v_1$를 계산하는 것은 데이터 fitting의 대수적 문제이다. 행렬..
[선형대수학] 특이값 분해 (SVD, Singular Value Decomposition)데이터 과학은 SVD에서 선형대수학과 연결된다. - 딥러닝을 위한 선형대수학, 길버트 스트랭 저 이전 포스팅에서 고유값 분해에 대해 알아보았다. 하지만 우리가 대부분 다루게 될 행렬은 정사각행렬이 아닌 경우가 많을 것이다. 그렇다면 어떻게 해야할까? 특이값 분해(SVD, Singular Value Decomposition) 정사각 행렬을 대상으로 하는 고유값 분해를 mXn 행렬로 일반화한 것을 특이값 분해라고 한다. 수식으로는 $$A = U\Sigma V^T$$ 으로 표현한다. 특이값 분해는 행렬의 차원 축소를 위한 도구로 주로 사용하며, 최소제곱(least squares)에서 최적의 $\hat{a}$ 를 찾고, PCA에서 주성분인 $v_1$를 계산하는 것은 데이터 fitting의 대수적 문제이다. 행렬..
2023.01.25 -
문제 철수는 롤케이크를 두 조각으로 잘라서 동생과 한 조각씩 나눠 먹으려고 합니다. 이 롤케이크에는 여러가지 토핑들이 일렬로 올려져 있습니다. 철수와 동생은 롤케이크를 공평하게 나눠먹으려 하는데, 그들은 롤케이크의 크기보다 롤케이크 위에 올려진 토핑들의 종류에 더 관심이 많습니다. 그래서 잘린 조각들의 크기와 올려진 토핑의 개수에 상관없이 각 조각에 동일한 가짓수의 토핑이 올라가면 공평하게 롤케이크가 나누어진 것으로 생각합니다. 예를 들어, 롤케이크에 4가지 종류의 토핑이 올려져 있다고 합시다. 토핑들을 1, 2, 3, 4와 같이 번호로 표시했을 때, 케이크 위에 토핑들이 [1, 2, 1, 3, 1, 4, 1, 2] 순서로 올려져 있습니다. 만약 세 번째 토핑(1)과 네 번째 토핑(3) 사이를 자르면 롤..
[프로그래머스][파이썬] LV.2 롤케이크 자르기문제 철수는 롤케이크를 두 조각으로 잘라서 동생과 한 조각씩 나눠 먹으려고 합니다. 이 롤케이크에는 여러가지 토핑들이 일렬로 올려져 있습니다. 철수와 동생은 롤케이크를 공평하게 나눠먹으려 하는데, 그들은 롤케이크의 크기보다 롤케이크 위에 올려진 토핑들의 종류에 더 관심이 많습니다. 그래서 잘린 조각들의 크기와 올려진 토핑의 개수에 상관없이 각 조각에 동일한 가짓수의 토핑이 올라가면 공평하게 롤케이크가 나누어진 것으로 생각합니다. 예를 들어, 롤케이크에 4가지 종류의 토핑이 올려져 있다고 합시다. 토핑들을 1, 2, 3, 4와 같이 번호로 표시했을 때, 케이크 위에 토핑들이 [1, 2, 1, 3, 1, 4, 1, 2] 순서로 올려져 있습니다. 만약 세 번째 토핑(1)과 네 번째 토핑(3) 사이를 자르면 롤..
2023.01.25 -
문제 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고) 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한사항 s는 길이 1 이상 200 이하인 문자열입니다. s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다. 숫자는 단어의 첫 문자로만 나옵니다. 숫자로만 이루어진 단어는 없습니다. 공백문자가 연속해서 나올 수 있습니다. 입출력 예 s return "3people unFollowed me" "3people Unfollowed Me" "for the last week" "For ..
[프로그래머스][파이썬] LV.2 JadenCase 문자열 만들기문제 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고) 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한사항 s는 길이 1 이상 200 이하인 문자열입니다. s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다. 숫자는 단어의 첫 문자로만 나옵니다. 숫자로만 이루어진 단어는 없습니다. 공백문자가 연속해서 나올 수 있습니다. 입출력 예 s return "3people unFollowed me" "3people Unfollowed Me" "for the last week" "For ..
2023.01.20 -
고유벡터(eigenvector), 고유값(eigenvalue) 고유벡터: 행렬 A를 선형변환으로 봤을 때, 선형변환 A에 의한 변환 결과가 자기 자신의 상수배가 되는 0이 아닌 벡터 고유값: 위에서 말한 상수배 값 선형변환(linear transformation) 선형 결합을 보존하는, 두 벡터 공간 사이의 함수. 즉 한 점을 한 벡터공간에서 다른 벡터공간으로 이동시키는데 그 이동 규칙을 이야기한다. 즉, n x n 정방행렬 A에 대해 Av = λv를 만족하는 0이 아닌 열벡터 v를 고유벡터, 상수 λ를 고유값이라 정의한다. 정방행렬(square matrix) 같은 수의 행과 열을 가지는 행렬 어떤 행렬은 고유값-고유벡터가 아예 존재하지 않을 수도 있고 어떤 행렬은 하나만 존재하거나 또는 최대 n개까지 ..
[선형대수학] 고유값, 고유벡터, 고유값 분해고유벡터(eigenvector), 고유값(eigenvalue) 고유벡터: 행렬 A를 선형변환으로 봤을 때, 선형변환 A에 의한 변환 결과가 자기 자신의 상수배가 되는 0이 아닌 벡터 고유값: 위에서 말한 상수배 값 선형변환(linear transformation) 선형 결합을 보존하는, 두 벡터 공간 사이의 함수. 즉 한 점을 한 벡터공간에서 다른 벡터공간으로 이동시키는데 그 이동 규칙을 이야기한다. 즉, n x n 정방행렬 A에 대해 Av = λv를 만족하는 0이 아닌 열벡터 v를 고유벡터, 상수 λ를 고유값이라 정의한다. 정방행렬(square matrix) 같은 수의 행과 열을 가지는 행렬 어떤 행렬은 고유값-고유벡터가 아예 존재하지 않을 수도 있고 어떤 행렬은 하나만 존재하거나 또는 최대 n개까지 ..
2023.01.19 -
문제 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 파일을 이름 순으로 정렬하면 나중에 만들어진 ver-10.zip이 ver-9.zip보다 먼저 표시되기 때문이다. 버전 번호 외에도 숫자가 포함된 파일 목록은 여러 면에서 관리하기 불편했다. 예컨대 파일 목록이 ["img12.png", "img10.png", "img2.png", "img1.png"]일 경우, 일반적인 정렬은 ["img1.png", "img10.png", "img12.png", "img2.png"] 순이 되지만, 숫자 순으로 정렬된 [..
[프로그래머스][파이썬] LV.2 [3차] 파일명 정렬문제 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 파일을 이름 순으로 정렬하면 나중에 만들어진 ver-10.zip이 ver-9.zip보다 먼저 표시되기 때문이다. 버전 번호 외에도 숫자가 포함된 파일 목록은 여러 면에서 관리하기 불편했다. 예컨대 파일 목록이 ["img12.png", "img10.png", "img2.png", "img1.png"]일 경우, 일반적인 정렬은 ["img1.png", "img10.png", "img12.png", "img2.png"] 순이 되지만, 숫자 순으로 정렬된 [..
2023.01.19 -
문제 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙어있을 경우 사라지면서 점수를 얻는 게임이다. 만약 판이 위와 같이 주어질 경우, 라이언이 2×2로 배치된 7개 블록과 콘이 2×2로 배치된 4개 블록이 지워진다. 같은 블록은 여러 2×2에 포함될 수 있으며, 지워지는 조건에 만족하는 2×2 모양이 여러 개 있다면 한꺼번에 지워진다. 블록이 지워진 후에 위에 있는 블록이 아래로 떨어져 빈 공간을 채우게 된다. 만약 빈 공간을 채운 후에 다시 2×2 형태로 같은 모양의 블록이 모이면 다시 지워지고 떨어지고를 반복하게 된다. 위 초기 배치를 문자로 표시하면 아래와 같다. ..
[프로그래머스][파이썬] LV.2 [1차] 프렌즈4블록문제 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙어있을 경우 사라지면서 점수를 얻는 게임이다. 만약 판이 위와 같이 주어질 경우, 라이언이 2×2로 배치된 7개 블록과 콘이 2×2로 배치된 4개 블록이 지워진다. 같은 블록은 여러 2×2에 포함될 수 있으며, 지워지는 조건에 만족하는 2×2 모양이 여러 개 있다면 한꺼번에 지워진다. 블록이 지워진 후에 위에 있는 블록이 아래로 떨어져 빈 공간을 채우게 된다. 만약 빈 공간을 채운 후에 다시 2×2 형태로 같은 모양의 블록이 모이면 다시 지워지고 떨어지고를 반복하게 된다. 위 초기 배치를 문자로 표시하면 아래와 같다. ..
2023.01.18