chatGPT 를 학습에 어떻게 쓰일 수 있는가? language model 이란? 문장의 일부를 보고 비어있는 단어를 확률적으로 맞추는 모델 LLM: Large Language Model GPT에서 Temperature 개념: - 0과 100 사이의 값 - 100에 가까울수록 조금 더 랜덤해짐 Language Model 훈련 1. 모델 훈련 - 웹상에서 존재하는 문서들이 모델의 훈련 데이터가 됨 -- 품질이 중요하기에 위키피디아가 가장 많이 사용됨 -- 이를 코드에 적용 가능하며 이 경우 github이 훈련용 데이터가 됨 -- unsupervised learning - context window의 크기가 결국 모델의 메모리를 결정 language model: word to vector - 언어 모델에 ..
문제를 만났을 때 첫인상이 굉장히 중요! -> 어떤 알고리즘을 적용할지, 어떤 제약이 존재하는지, 문제의 지문으로부터 찾을 수 있어야 함 자료구조(와 알고리즘)의 선택 만약 이름 대신 번호가 주어졌다면? -> 선형 배열 (linear array) 번호 말고 다른 것(ex. 문자열)으로 접근할 수 잇는 좋은 자료 구조는 없는가? 해시 (Hash) 임의의 크기를 가진 데이터(key)를 고정된 크기의 데이터(value)로 변화시켜 저장하는 것 키에 대한 해시값을 사용하여 값을 저장하고 키-값 쌍의 갯수에 따라 동적으로 크기가 증가하는 associate array 키에 대한 해시값을 구하는 과정을 hashing(해싱)이라고 하며 이 때 사용하는 함수를 해시함수라 함 해시값 자체를 index로 사용하기 때문에 평..
큐(Queues) 란? 먼저 집어넣은 데이터가 가장 먼저 나오는 FIFO(First In First Out)의 구조로 데이터를 저장하는 형식 큐의 추상적 자료구조 구현 1. 배열(array)을 이용하여 구현 - python 리스트와 메서드들을 이용 2. 연결 리스트(linked list)를 이용하여 구현 - 이전 강의에서 마련한 양방향 연결 리스트 이용 연산의 정의 size() - 현재 큐에 들어 있는 데이터 원소의 수를 구함 (복잡도: O(1)) isEmpty() - 현재 큐가 비어 있는지를 판단 (복잡도: O(1)) enqueue(x) - 데이터 원소 x를 큐에 추가 (복잡도: O(1)) dequeue() - 큐의 맨 앞에 저장된 데이터 원소를 제거 (또한, 반환) (복잡도: O(n)) peak() ..
추상적 자료구조 (Abstract Data Structures) Data (정수, 문자열, 레코드, ...) A set of operatations (삽입, 삭제, 순회 ...) 연산 정의 특정 원소 참조 (k번째) 리스트 순회 길이 얻어내기 원소 삽입 원소 삭제 두 리스트 합치기 배열과 비교한 연결 리스트 배열 연결 리스트 저장 공간 연속한 위치 임이의 위치 특정 원소 지칭 매우 간편 선형탐색과 유사 O(1) O(n) 코드 구현 주의사항 1. 삽입하려는 위치가 리스트 맨 앞일 때 -> prev 없음 -> Head 조정 필요 단, 빈 리스트에 삽입할 때? -> 이 두 조건에 의해 처리됨 2. 삽입하려는 위치가 리스트 맨 끝일 때 -> Tail 조정 필요 연결 리스트의 핵심 연산 원소의 삽입 (insert..
[특강] 코딩 테스트 면접 코딩테스트 왜 하는가? 최소한의 문제 해결 능력을 확인(검증)하기 위하여 문제의 분석과 해결 방법 착안 -> 이것을 코드로 구현 코드를 잘 짰는지는 체크하지 않는다. 코딩 테스트(하한선)와 코딩 인터뷰(실제로 일을 시켰을 때 잘 할까?) 차이: 코딩 테스트: 코딩 문제를 풀어보게 함, 검증하려는 역량에 따라 문제 종류와 난이도가 달라짐 코딩 인터뷰: 직무에 필요한 배경지식을 충분히 갖추고 있는지 점검, 생각한 바를 논리적으로 올바르게 전달할 수 있는지 점검, whiteboard test, live coding 방법 등 활용 코딩 문제(대강의) 종류: implementation: 제시된 흐름에 따라 실행하는 코드를 만들도록 요구 (난이도: 하) algorithm comprehen..