2025/02 22

[프로그래머스] 대충 만든 자판 (파이썬, enumerate함수)

[문제]대충 만든 천지인 자판으로 특정 문자열을 출력하려면 몇 번 자판을 눌러야 하는지 구하는 문제였다.  [코드]def solution(keymap, targets): answer_lst = [] apb = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' lst = [0] * 26 # 각각의 알파벳에 접근할 수 있는 가장 빠른 인덱스 찾기 for key in keymap: for i in range(len(key)): if lst[apb.index(key[i])] != 0: lst[apb.index(key[i])] = min(i+1, lst[apb.index(key[i])]) else: ..

코테 오답노트 2025.02.27

[프로그래머스] 숫자 짝꿍 (파이썬, 시간복잡도 개선)

내 풀이가 나름 마음에 들어서 기록해본다. [문제]  [코드]def solution(X, Y): # X_lst, Y_lst: X, Y 숫자세기용 리스트 / lst: 겹치는 숫자세기용 리스트 X_lst, Y_lst, lst = [0] * 10, [0] * 10, [] # X, Y에 있는 숫자들의 개수 세줌 for i in X: X_lst[int(i)] += 1 for i in Y: Y_lst[int(i)] += 1 # 특정 숫자가 X, Y에 모두 들어있으면 둘 중에 적은 개수만큼 lst에 저장해줌(e.g. 55, 2) for i in range(10): if X_lst[i] != 0 and Y_lst[i] != 0:..

코테 오답노트 2025.02.26

[프로그래머스] 평행 (파이썬)

[문제]점 4개 중에 임의로 2개씩 선택했을 때, 서로 평행한 경우가 있는지 알아보는 문제였다.정답률 53%의 문제였다.  [유의한 점](y2 - y1) / (x2 - x1) == (y4 - y3) / (x4 - x3) 형식으로 나누기를 사용하면x1 == x2 일 때 0으로 나누면서 오류가 날까봐 곱셈 형태로 바꿔줬다.  [코드]def solution(dots): answer = 0 # [[x1, y1],[x2, y2],[x3, y3],[x4, y4]] = dots x1 = dots[0][0] y1 = dots[1][0] x2 = dots[2][0] y2 = dots[3][0] x3 = dots[0][1] y3 = dots[1][1] x4 = dots[2]..

코테 오답노트 2025.02.24

[프로그래머스] 겹치는 선분의 길이 (파이썬)

[문제]겹치는 선분의 길이를 구하는 문제였다.입출력 예는 아래와 같다.정답률 60% 문제였다.linesresult[[0,1],[2,5],[3.9]]2[[-1,1],[1,3],[3,9]]0[[0,5],[3,9],[1,10]]8 [풀이 방법]1. a,b값이 -100이상 100이하이기 때문에, 냅다 [0]으로 구성된 리스트 lst를 만들어줬다. 2. 그 다음에 각각의 선분에 대해서 for문을 적용해서 돌려줬다. 3. for문 안에 for문을 또 넣어서 a(line[0])와 b(line[1]) 사이의 모든 값에 해당하는 lst의 인덱스에 +1을 하도록 했다. 4. 겹치는 부분의 길이를 구하기 위해서, lst 중 값이 2 이상인 부분의 개수를 세어주었다. 5. 세어준 개수가 답! [코드]def solution(l..

코테 오답노트 2025.02.24

[선형대수] 3.9 Rotations ~ 3.9.4 Properties of Rotations

공부하는 단계에서 정리한 내용입니다.잘못된 내용이 있다면 말씀해주시면 감사하겠습니다.https://mml-book.github.io/book/mml-book.pdf 3.9 RotationsSecion 3.4에서 orthogonal transformation matrix를 가지는 linear mapping들의 2가지 특징인 length, angle preservation에 대해서 공부했다.이번에는 rotation을 설명하는 특별한 orthogonal transformation matrix에 대해서 공부할 것이다. Rotation은 평면을 $\theta$만큼 회전시키는 linear mapping(유클리드 공간의 automorphism)이다.$\theta > 0$이면 반시계방향으로 회전시킨다.아래 그림은 $R..

선형대수 2025.02.22

[선형대수] 3.8.3 Gram-Schmidt Orthogonalization | 3.8.4 Projection onto Affine Subspaces

공부하는 단계에서 정리한 내용입니다.잘못된 내용이 있다면 말씀해주시면 감사하겠습니다.https://mml-book.github.io/book/mml-book.pdf 3.8.3 Gram-Schmidt OrthogonalizationGram-Schmidt Orthogonalization은 벡터공간 $V$의 n차원 벡터공간 위에 있는 basis ($b_{1}, ..., b_{n}$)를 orthogonal/orthonormal basis $u_{1}, ..., u_{n}$로 바꾼다. 이 과정에서 projection이 핵심 역할을 한다.이러한 basis는 항상 존재하고, $span[b_{1}, ..., b_{n}]$ = $span[u_{1}, ..., u_{n}]$이다. 그래서 어떻게 하느냐!1. 첫 번째 벡터는..

선형대수 2025.02.21

[프로그래머스] 다항식 더하기 (파이썬)

왼쪽과 같이 입력이 다항식으로 주어지면 동류항끼리 계산해서 출력을 하는 문제였다.반례를 잘 찾아야 하는 문제였다.  나는 중간의 ' + '를 기준으로 split을 해서 풀었다.그렇기 때문에 출력 형식에 따라서 하나하나 처리를 해주어야 했다.먼저 if문으로 입력이 다항식일 때, 단항식일 때를 처리해줬다. 그리고 다항식 if문 안에 출력의 형태에 따라 또 if문을 넣어주었다.출력 꼴이 ax + b 라고 할 때, 출력이 'x'일 때, 'x+b'일 때, 'b'일 때, 'ax'일 때, 'ax + b'일 때 모두 따로따로 처리해줘야 했다.다른 풀이를 봐도 뾰족한 수는 없는 것 같다.def solution(polynomial): a_part, b_part = 0, 0 # 다항식 일 때 if ' + '..

코테 오답노트 2025.02.20

[선형대수] 3.8.2 Projection onto General Subspaces

공부하는 단계에서 정리한 내용입니다.잘못된 내용이 있다면 말씀해주시면 감사하겠습니다.https://mml-book.github.io/book/mml-book.pdf 3.8.2 Projection onto General Subspaces이번에는 벡터 $x$의 $\mathbb R ^{m}$($m \geqslant 1$)로의 orthogonal projection $x - \pi_{U}(x)$를 구해볼 것이다. 아래 그림과 같은 상황이다.  3.8.1에서 했던 것처럼 3단계에 걸쳐서 구하면 된다. 1.  $\lambda$ 구하기  $\pi_{U}(x) = \sum_{i=1}^m \lambda_{i} b_{i} = B \lambda$이고, $B = \begin{bmatrix} b_{1}, ..., b_{m} \..

선형대수 2025.02.19

[주저리] 링크드인 계정을 만들었다.

어제 링크드인 계정을 새로 만들었다.프로필에 쓸 게 대학 하나밖에 없는 걸 보고 새삼 갈 길이 멀다는 생각이 들었다. 계정 만든 김에 큰 기대 없이 한분께 연락드려서 조언을 구했는데친절하고 세세하게 현실적으로 조언해 주셨다.요새 여기저기 지원하고 이것저것 고민하면서 인생이 막막했는데 너무 감사했다. 세상의 따뜻함을 느꼈다.. 흑흑일단 지금 하고 있는 mml 스터디 열심히 해서 선형대수 기초를 쌓고 (힘든데 그만큼 뿌듯한 스터디다)코테 준비도 꾸준히 해놓아야겠다.정처기 실기 공부하는 김에 c랑 기초 cs지식도 잘 훑어놔야겠다.그리고 여러 가지 생각 끝에 .. 나는 기초 탄탄하고 문제 해결력 좋은 문돌이 가 되기로 했다.당장 눈앞에 성과가 없더라도 불안해하지 않고 기초를 다져야겠다는 뜻이다. 이 길로 가야겠..

주저리 2025.02.18

[선형대수] 3.8 Orthogonal Projections | 3.8.1 Projection onto One-Dimensional Subspaces (Lines)

공부하는 단계에서 정리한 내용입니다.잘못된 내용이 있다면 말씀해주시면 감사하겠습니다.https://mml-book.github.io/book/mml-book.pdf 3.8 Orthogonal ProjectionsProjection은 선형변환에서 매우 중요한 개념이다. (e.g. PCA, deep auto-encoder)머신러닝에서 종종 고차원의 데이터를 다루게 되는데, 고차원 데이터는 분석・시각화하기가 힘들기 때문에 차원을 축소시키는 방법을 사용한다.고차원 데이터는 몇몇 차원에 정보가 집중되어있기에 가능한 방법이다.이때, 정보손실을 최소화하기 위해서 가장 중요한 차원을 찾아야 한다. 이를 Orthogonal projection 이라고 한다.그림으로 나타내면 아래와 같다.이 방법은 Chapter10의 li..

선형대수 2025.02.17