💡 문제 해결 아이디어 - greedy하게 가장 큰 gcd를 가지는 페어를 찾아가는 방식은 최대값을 가진다는 보장을 할 수가 없다. - 추가적으로, 길이가 최대 7이므로 모든 경우의 수를 계산할만하다. - bitmask, 길이가 최대 7인 mask 리스트를 저장하지 않고, 하나의 int를 mask로 활용한다. (메모리 절약) - 연산자는 이진수를 한칸씩 밀거나 당기며 2배 혹은 1/2배 한다. - and와 &의 차이는 &는 bitwise로 작동한다는 점. - @lru_cache(None) 데코레이터: DP문제에서 함수가 반환하는 값을 memoization하도록 도와줄수 있다. 💻 작성된 코드 import math class Solution: def maxScore(self, nums: List[int])..
💡 문제 해결 아이디어 뒤의 숫자는, 연쇄적인 operation을 통해 얼마든지 앞으로 보내서 감소시킬 수 있다. 따라서 값을 앞으로 보내서 "최댓값을 줄일 수 있는가"가 관건일 것이다. 리스트를 돌면서 숫자를 만났을 때, 두가지 경우가 있다. 1. 해당값이 지금까지의 최댓값보다 작은 경우 -> 앞으로 값을 보내도 최댓값은 줄어들 수 없음. 2. 해당값이 지금까지의 최댓값보다 큰 경우 a. 앞으로 최대한 보냈음에도 지금까지의 최댓값보다 큰 경우 -> 최댓값 갱신 b. 앞으로 최대한 보냈더니 지금까지의 최댓값보다 같거나 작은 경우 -> 갱신 필요 없음 💻 작성된 코드 class Solution: def minimizeArrayValue(self, nums: List[int]) -> int: n = len(..
워라밸... 이 단어에 대해서 고민하는 날이 올 줄은 몰랐다. 보통 워라밸이라고 하면, - 야근 안 하고 칼퇴하는 것. - 회식참여하지 않고 저녁에는 자신이 원하는 취미나 여가활동을 하며 시간을 보내는 것. - 퇴근 후에는 일생각을 하지 않는 것. 등을 의미한다고 생각한다. 물론, 기본적으로 야근이나 회식으로부터의 자유를 보장해주는 회사에 가는 것이 좋다. 거기까진 좋으나, 워라밸에 너무 집착하게 되면 문제가 생기는 것 같다. 회사를 다닌 지 얼마 되지는 않았지만, 야근하다가 12시 넘어 퇴근해서 회사돈으로 택시 타고 집에도 가보고, 퇴근 후에 유튜브, 게임, 웹소설, 그냥 눕기 등등을 하기 위해서 일찍 출근해서 일찍 칼퇴하면서 살아보기도 했는데, 칼퇴하는 동안 내가 느낀 것은 "점점 일을 하기 싫어진다..
자, Stable Diffusion이 뭔지 검색해 봤는데, 수식이 넘쳐나서 당황하신 분들을 환영합니다. 정말 코딱지만한 딥러닝, 머신러닝 지식만 있다면, 여러분은 이 글을 읽고 Stable Diffusion의 원리를 대충 파악할 수 있습니다. 그럼 시작하겠습니다! ❓Diffusion은 뭘까 Stable Diffusion에 앞서, Diffusion이 뭔지 알고 넘어가 보자. 보통 물에 잉크를 한 방울 똑! 떨어뜨리면 점점 퍼져나가다가(확산하다가) 결국 균일하게 퍼지게 될 것이다. 그리고 확산은 영어로 Diffusion이다. 마찬가지로, 이미지(데이터)에 노이즈를 추가하여 점차 완전히 노이즈로 가는 과정을 Diffusion 과정이라고 한다. 그리고, 그 반대 과정을 통해서 "랜덤 한 노이즈"로부터 "이미지"..
💡 Latent? Code? 이게 뭐람? Latent란 무엇일까? Encoder, Decoder란 무엇일까? 대체 왜 Latent, Code로 바꾸는 걸까? 인공지능을 공부하다 보면, Latent, Encoder, Decoder와 같은 단어를 정말 많이 접할 수 있을 것이다. "그냥 벡터다" 혹은 "컴퓨터가 이해할 수 있도록 숫자로 바꾼 것이다"라는 설명으로도 대충 이해하고 넘어갈 수 있을 듯 하지만, 앞으로 인공지능을 공부할 때 조금 더 수월하게 이해하는데 도움이 될 Low Manifold Theory에 대해서 설명해보고자 한다. 🥚 맛보기 예시 - 압축 사실 어렵게 생각할 필요없이, 우리가 큰 파일을 작은 사이즈로 줄이기 위해서 "압축"하는 것과 같다고 생각해도 무방하다. 혹은 "불필요한 정보들을 제..
Link: https://www.youtube.com/watch?v=W_Jytlily8M&t=7s ...Bc5, d4 ...exd4, Bxe7+ - 희생전술 ...Kxe7, Qh4+, g6, Qxc5 예시 - Nc6, Nf3, d6, Ng5+ - 더블어택 ...Bxd4, Nf3 ...Nc6, O-O Nxd4을 바로 안하는 이유: 적절한 타이밍에 Nxd4나 Ng5를 들어가기 위해서. 예시) ...Nf6, Nxd4 ...exd4, e5 ...Nxe5, Re1(pin), d6(protect Ne5), e5(attack the Ne5) ...Ne4, Qg4(double attack - Ne4, g7) ...Nxd4, f4 ...d6(protect e5), fxe5, dxe5, Bg5 (Pin the Nf6 on..
Attend and Excite: Attention-Based Semantic GUidance for Text-to-Image Diffusion Models 모든 프롬프트의 Attention값이 적어도 한 patch 이상에서 특정값 이상이 나오도록 latent를 업데이트하여, 추가학습없이 on the fly로 성능 개선한 논문. 배경 Stable Diffusion catastrophic neglect: 하나 이상의 프롬프트가 생성되지 않는 현상. incorrect attribute binding: 특성이 다른 대상에 반영되는 현상. 근본적인 원인은 모든 토큰(프롬프트의)이 이미지의 어딘가에 반영되도록하는 메커니즘이 없기 때문. 논문에서 제시하는 해결방안 Generative Semantic Nursing ..
💡프로그래머스 문자열 나누기 - 내가 생각한 아이디어 우선, 분리가 다 될 때까지 무한 반복이기에 while문이 필요. s의 글자들을 살펴보면서(for문 사용), (첫 글자의 개수 - 그 외의 개수)가 0이 되는 순간이 "두 횟수가 같아지는 순간"이다. 만약 s의 글자들을 다 살펴봤는데도, 0이 되는 순간이 없었다면 더 이상 분리가 불가능하기에 종료하면 된다. 위 케이스를 위해, for문이 break 없이 정상적으로 끝났을 때만 진입할 수 있는 for-else 구문을 이용할 것이다. 👩🏻💻 작성한 코드 def solution(s): # 분해된 문자열의 개수 answer = 0 # 문자열이 다 분해되기 전 동안에, while s: # (첫글자 개수 - 그외의 개수)를 나타내는 변수. cnt = 1 # 두..
- Total
- Today
- Yesterday
- 연습문제
- heap
- 가장 가까운 글자 파이썬
- 코테
- stablediffusion
- 알고리즘
- Stable Diffusion
- 프로그래머스 연속된수의합
- Low Manifold Theory
- 코딩테스트
- 프로그래머스 파이썬
- 프로그래머스 아이템줍기
- 디펜스
- 프로그래머스 문자열 나누기
- leetcode
- ChatGPT
- 스테이블디퓨전
- Attend and Excite
- 프로그래머스 가장 가까운 글자
- 파이썬
- BFS
- 프로그래머스
- 인공지능
- OpenAI
- 큐
- 문자열 나누기 파이썬
- 프로그래머스 햄버거 만들기
- python
- heapq
- 그리디
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
