본문 바로가기
728x90
반응형

전체 글67

5장. 정렬(1) - 퀵정렬이란? 퀵 정렬피벗을 기준으로 좌우를 나누는 특징 때문에 파티션 교환 정렬이라고도 불린다.병렬 정렬과 마찬가리고 분할 정복 알고리즘피벗이라는 개념을 통해 피벗보다 작으면 왼쪽, 크면 오른쪽과 같은 방식으로 파티셔닝하면서 쪼개 나간다.이 중에서도 로무토 파티션이란 항상 맨 오른쪽의 피벗을 택하는 단순한 방식으로, 토니 호어가 고안한 최초의 퀵 정렬 알고리즘보다 훨씬 더 간결하고 이해하기 쉽기 때문에 퀵 정렬 소개 시 항상 맨 처음에 언급됨 퀵 정렬 수도코드Quicksort(A, lo, hi) if lo  기본 조건 확인: Quicksort(A, lo, hi)는 lo 피벗 분할:partition(A, lo, hi) 함수는 A[lo]부터 A[hi]까지의 구간에서 피벗을 기준으로 요소들을 나눈다.이 함수는 피벗 위치를.. 2024. 11. 25.
02장. DistilBERT 파인튜닝 및 평가 (문제8~11) 문제8. 데이터세트 클래스 생성Torch.utils.data.Dataset을 상속하는 IMDbFDataset이라는 클래스를 작성하세요. 그리고 문제 7의 IMDB 데이터세트에서 생성한 학습, 검증, 테스트 데이터세트를 입력해서 이 클래스를 인스턴스화합니다. 클래스 및 인스턴스화 개념은 문제2를 참고하세요.  상속이란? 클래스를 생성할 때 다른 클래스의 기능을 가져다 쓰는 것을 상속이라고 합니다. 예를 들어 20층 건물을 지을 때, 타 고층 빌딩의 설계도를 참고하면 도움이 됩니다. 엘리베이터 기능, 공조 기능, 지진 설계 등을 빌려와 쓸 수 있다면 시간과 노력이 절감됩니다. 즉, 객체 A를 짓는 설계도 클래스의 기능을 물려받아 객체 B를 짓는 설계도 클래스에서 그대로 사용한다는 개념이 바로 상속입니다.  .. 2024. 11. 24.
02장. DistilBERT 파인튜닝 및 평가 (문제4~7) 문제4. IMDB 데이터세트IMDB 데이터세트는 영화 리뷰 코멘트의 긍정/부정 감성을 판단하기 위해 사용하는 감성 분석 데이터세트이다. - 25,000개 학습 데이터 (텍스트 및 레이블)- 25,000개 테스트 데이터 (텍스트 및 레이블)50,000개 데이터세트를 다운로드하고, 학습과 테스트를 위해 랜덤하게 1,000개씩 데이터를 추출하여 리스트 형식으로 저장하시오.  torchtext는 Pytorch의 자연어 전처리용 라이브러리이다. 이를 이용하면 데이터를 얻을 수 있다. !pip install torchtext==0.15.2!pip install portalocker==2.7.0!pip install accelerate -U from torchtext.datasets import IMDBtrain_i.. 2024. 11. 23.
8장 연결리스트 (1) - 연결리스트란? (예제 - 회문 판별) 연결 리스트(Linked List)연결 리스트(Linked List)는 배열과 함께 대표적인 선형 자료구조로, 다양한 추상 자료형(ADT) 구현의 기반이 됩니다. 이 구조는 동적으로 새로운 노드를 삽입하거나 삭제하기가 용이하며, 물리 메모리를 연속적으로 사용하지 않아도 되므로 메모리 관리에도 유리합니다. 연결 리스트의 특징동적 메모리 관리: 물리적으로 연속적이지 않아도 되므로 메모리 활용도가 높습니다.삽입/삭제의 효율성: 시작 또는 끝에 데이터를 삽입하거나 삭제하는 작업은 O(1)에 가능합니다.탐색의 비효율성: 특정 인덱스에 접근하려면 순차적으로 읽어야 하므로 탐색 시간은 O(n)입니다.  문제. 연결 리스트로 Palindrome(회문) 검사하기- 입력: 1->2 / 출력: False- 입력: 1->2-.. 2024. 11. 22.
01장. 파이프라인 (감성 분석, 질의 응답 with DistilBERT) 문제2. 감성 분석 - DistilBert 모델 사용Distilbert 모델을 사용하여 감성 분석을 실행하는 문제이다. 다음 나열된 입력 문장들이 긍정인지 부정인지 판단하세요.(1) " I like Olympic games as it's very exciting." (나는 올림픽이 흥미진진하기 때문에 좋아합니다.)(2) " I'm against to hold Olympic games in Tokyo in terms of preventing the covid19 to be spread." (나는 코비드19 확산 방지 차원에서 도쿄 올림픽 개최를 반대합니다.) 문제2는 허깅 페이스의 transformers 라이브러리를 활용하여 DistilBERT 모델을 사용한 감성 분석을 수행한다.감성 분석은 텍스트에서 감.. 2024. 11. 21.
9장 스택,큐(3) - 스택이란? (예제-일일 온도) 매일의 화씨 온도 리스트 T를 입력 받아서, 더 따뜻한 날씨를 위해서는 며칠을 더 기다려야 하는지를 출력하라.입력: T = [73, 74, 75, 71, 69, 72, 76, 73]출력: [1,1,4,2,1,1,0,0] def dailyTemperatures(T: list[int]) -> list[int]: answer = [0] * len(T) # 결과를 저장할 리스트, 초기값은 0 stack = [] # 인덱스를 저장하는 스택 for i, cur in enumerate(T): # 인덱스(i)와 현재 온도(cur)를 함께 순회 # 스택이 비어 있지 않고, 현재 온도가 스택의 마지막 인덱스에 해당하는 온도보다 높다면 while stack and cur.. 2024. 11. 20.
9장 스택,큐(2) - 스택이란? (예제-중복문자제거) 중복된 문자를 제외하고 사전식 순서로 나열하라입력: "bcabc" / 출력: "abc"입력: "cbacdcbc" / 출력: "acdb"  풀이. 스택을 이용한 문자 제거import collectionsdef removeDuplicateLetters(s: str) -> str: counter, seen, stack = collections.Counter(s), set(), [] for char in s: counter[char] -= 1 # 현재 문자의 개수를 하나 줄임 if char in seen: # 이미 스택에 추가된 문자라면 건너뜀 continue # 스택에서 문자를 제거할 조건: .. 2024. 11. 19.
9장 스택,큐(1) - 스택이란? (예제-유효한 괄호) 스택(Stack)과 연결 리스트를 활용한 ADT 구현 및 유효한 괄호 문제 풀이스택(Stack)은 LIFO(Last In, First Out) 구조를 가지는 대표적인 자료구조이다. 이는 가장 나중에 들어간 데이터가 가장 먼저 나오는 구조로, 다음 두 가지 주요 연산을 지원한다.push(item): 스택의 맨 위에 데이터를 추가하는 연산pop(): 스택의 맨 위 데이터를 제거하고 반환하는 연산 1. 연결 리스트를 활용한 스택 ADT 구현스택은 배열 또는 연결 리스트를 이용하여 구현할 수 있다. 여기서는 연결 리스트를 활용한 스택 구현 방식을 살펴보려고 한다.  연결 리스트 기반 스택 구현 코드# 연결 리스트의 노드를 나타내는 클래스class Node: def __init__(self, item, ne.. 2024. 11. 18.
728x90
반응형