Processing math: 0%

분류 전체보기 102

[프로그래머스] 옹알이(2) (파이썬, startswith 함수)

내 풀이를 바탕으로 지피티와 함께 조금 다듬어봤다.  [문제]애기가 옹알이로 할 수 있는 말의 개수를 구하는 문제였다.아직 4가지 단어만 말 할 수 있고, 애기기 때문에 연속해서 같은 단어를 발음하지 못한다.   [코드]내 코드이다.먼저 슬라이싱으로 처리하기 위해서 2글자 단어('ye', 'ma')와 3글자 단어('aya', 'woo')가 등장했을 때의 2가지 경우로 나눴다.각 경우에서 babble의 앞 단어가 애기가 발음할 수 있는 단어이면, front_word라는 단어에 그 단어를 추가하고 babble에서 그 단어를 없애줬다. 여기서 추가한 단어가 기존의 front_word 단어와 같으면 발음할 수 없으므로 break.babble의 앞단어가 애기가 발음할 수 없는 단어여도 바로 break.babble..

코테 오답노트 2025.03.04

[프로그래머스] 햄버거 만들기 (파이썬, 시간초과)

시간초과로 오류가 나서, 그리고 내 코드도 마음에 들지만 다른 사람 코드가 더 깔끔해보여서 기록해본다. [문제]애니팡 같은 문제였다. 특정 패턴이 반복되면 팡 터지고 지워져서 붙여지면 다시 팡 터지고를 반복하는 문제였다.  [코드]while로 리스트 안에서 돌면서 1231이 지워지면 i를 앞으로 당겨서 풀었다.처음에 1231이 지워진다음 i-=3로 설정하지 않고 i=0으로 설정했더니 시간초과가 떴다.i=0 으로 설정하면 배열이 길어질 경우에 앞에서부터 무의미한 반복이 일어나서임을 깨닫고 i-=3로 바꿔줬다.최대 3 인덱스 이하(123일 경우)에는 다시 지워질 가능성이 없기 때문이다.def solution(ingredient): answer = 0 i = 0 while i..

코테 오답노트 2025.03.03

[선형대수] Exercise 3.6 ~ 3.10

공부하는 단계에서 정리한 내용입니다.잘못된 내용이 있다면 말씀해주시면 감사하겠습니다.https://mml-book.github.io/book/mml-book.pdf [3.6]   [3.7]  [3.8]   [3.9] 코시슈바르츠 부등식(| \langle x,y \rangle | \leqslant \| x \| \| y \| )을 사용해서 증명하는 문제였다.a는 xx_{1}, x_{2}, ..., x_{n}을, yy = 1,1, ..., 1을 넣고 풀면 되었고,b는 x\sqrt{x_{1}}, \sqrt{x_{2}}, ..., \sqrt{x_{n}}을, y에 $y = \frac{1}{\sqrt{x_{1}}}, \frac{1}{\sqrt{x_{2}}}, ..., \fra..

선형대수 2025.03.02

[선형대수] Exercise 3.1 ~ 3.5

공부하는 단계에서 정리한 내용입니다.잘못된 내용이 있다면 말씀해주시면 감사하겠습니다.https://mml-book.github.io/book/mml-book.pdf  [3.1] \langle x,y \rangle이 내적임을 증명하는 문제였다. Def 3.2와 Def 3.3을 바탕으로 풀었다.Positive definite, symmetric, bilinear 를 만족하는지 각각 체크해주었다.   [3.2] 3.1과 비슷하지만 \langle x,y \rangle이 내적인지 알아보는 문제였다.똑같이 Positive definite, symmetric, bilinear 를 만족하는지 각각 체크해주었다. \therefore Symmetric하지 않으므로 inner product가 아니다.  [3.3]..

선형대수 2025.03.01

[프로그래머스] 대충 만든 자판 (파이썬, 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