전체 글


🖇️ GraphRAG의 등장 배경바야흐로 대규모 언어 모델, LLM이 등장하여 우리의 일상이 크게 변화하였다. GPT나 LLaMA와 같은 모델들은 사용자의 쿼리를 기반으로 놀라운 수준의 응답을 생성하며 강력한 퍼포먼스를 보이지만, 그와 동시에 치명적인 한계도 가지고 있다. 바로 LLM이 학습 이후 업데이트된 최신 정보들에 대해 무지하고, 학습되지 않은 특정 도메인 지식에 대해 제대로 응답하지 못한다는 점이다. 이러한 한계는 종종 Hallucination이라는 형태로 나타나며, 그럴듯하지만 사실과 다른 답변을 생성하게 된다. 이러한 문제를 보완하기 위해 등장한 것이 RAG(Retrieval-Augmented Generation)이다. RAG의 주요 아이디어는 '지식 검색'과 LLM의 결합이다. 최신 정보..


99클럽 코테 스터디 | 비기너 | 13일차import sysN = int(sys.stdin.readline())words = set()for _ in range(N): word = sys.stdin.readline().strip() words.add(word)sorted_words = sorted(words, key=lambda x: (len(x), x))for word in sorted_words: print(word) lambda 함수익명 함수를 정의할 때 사용하는 키워드로, 이름 없이 간단한 함수를 한 줄로 작성할 수 있게 도와준다. list나 set 안의 문자열을 정렬할 때 기준을 지정하거나, map()이나 filter()와 함께 사용하거나 일회성으로 함수가 필요할 때 사용한다...


99클럽 코테 스터디 | 비기너 | 12일차접근 방법 11. set을 이용하여 플레이하기를 신청한 사람들의 이름을 people()에 정렬한다.2. 게임 Y, F, O는 임스를 제외하고 각각 1명, 2명, 3명이 더 필요하므로, 각각의 입력에 따라 people의 전체 길이를 1, 2, 3으로 나눈 값을 play_time 변수로 리턴한다. def solution(people, game): play_time = 0 if game == "Y": play_time = len(people) elif game == "F": play_time = len(people) // 2 elif game == "O": play_time = len(people) // 3 ..


🖇️ Latent Space(잠재 공간)의 의미딥러닝에서 고차원 데이터를 저차원으로 인코딩한 Embedding Vector가 매핑되는 공간으로, Embedding Space와 동의어로 사용되기도 한다. 즉, 데이터의 본질적인 특징들만 압축하여 표현한 공간이다. 예를 들어 이미지나 텍스트와 같은 복잡한 입력 데이터를 신경망에 넣으면, 모델은 내부적으로 입력 데이터를 의미 있는 축소된 데이터인 Embedding Vector로 변환하고, 이 Embedding Vector들이 존재하는 공간이 Latent Space이다. 일반적으로 머신 러닝의 맥락에서 Space는 데이터 포인트를 수치적으로 표현하여 매핑하고, 다른 데이터 포인트들과 비교 또는 샘플링하는 공간을 의미한다. Vector로 표현되는 데이터 포인트..

99클럽 코테 스터디 | 비기너 | 11일차https://leetcode.com/problems/repeated-dna-sequences/description/ 접근 방법 해시를 이용하여 문제를 해결하였음 1. input s에 나타나는 10개의 letter로 된 DNA Sequence들을 dna_dict의 key에 저장함2. input에서 각 DNA Sequence들이 몇 번씩 출현하는지 횟수를 dna_dict의 value에 저장함3. dna_dict에서 count가 2 이상인 key들을 output 리스트에 추가함class Solution: def findRepeatedDnaSequences(self, s: str) -> List[str]: dna_dict = {} ..


99클럽 코테 스터디 | 비기너 | 10일차접근 방법 x축 또는 y축에 평행한 직선의 개수는 아래와 같은 조건을 만족한다. - x축에 평행 : y끼리의 좌표가 같아야 함 - y축에 평행 : x끼리의 좌표가 같아야 함 만일 (0, 0), (5, 0), (10, 0)이라는 좌표가 주어지면, 이 세 점은 동일한 y 좌표를 가지고 있지만 실제로 x축에 평행한 직선은 1개만 생성된다. 따라서 x 좌표(혹은 y 좌표)가 2개 이상 나타나는 경우 평행선이 1개 나타난다고 간주하고 문제를 접근했다. 이를 해결하기 위해 아래와 같은 단계로 나누었다. 1. x 좌표들을 key로 가지고, 모든 점들에서 x 좌표가 나타난 횟수를 value로 가지는 dictionary인 dict_x를 정의한다2. y 좌표들을 key로..

https://leetcode.com/problems/maximum-product-of-two-elements-in-an-array/description/ 접근 방법(Bubble Sort 연습용 문제) 1. Bubble Sort를 통해 전체 array를 정렬한다2. 정렬된 array에서 (가장 마지막 원소 - 1)와 (뒤에서 두번째 원소 - 1)의 값을 곱한 값을 리턴한다 class Solution: def maxProduct(self, nums: List[int]) -> int: n = len(nums) # Bubble Sort for i in range(n - 1): for j in range(n - i - 1): ..

def bubble_sort(array): n = len(array) for i in range(n - 1): for j in range(n - i - 1): if array[j] > array[j + 1]: array[j], array[j + 1] = array[j + 1], array[j] return arraybubble_sort(input)print("정답 = [1, 2, 4, 6, 9] / 현재 풀이 값 = ",bubble_sort([4, 6, 2, 9, 1]))print("정답 = [-1, 3, 9, 17] / 현재 풀이 값 = ",bubble_sort([3,-1,17,9]))print("정답 = [-3, 32, 44,..

99클럽 코테 스터디 | 비기너 | 9일차https://leetcode.com/problems/design-hashmap/description/ 접근 방법1. __init__() 함수에서 HashMap의 정보를 저장할 array self.HashMap을 선언한다.2. put() 함수에서 self.HashMap의 pair 중 입력 데이터 key와 동일한 값을 가진 key가 이미 존재하면 value 값을 업데이트, 일치하지 않으면 새로운 [key, value] 쌍을 추가한다.3. get()함수에서 self.HashMap의 pair 중 입력 데이터 key와 동일한 값을 가진 데이터가 있으면 해당 key의 vaule를 리턴, 없으면 -1을 리턴한다.4. remove() 함수에서 self.HashMap의 pair..