본문 바로가기
  • 공부한 것들과 여러가지를 기록해요

Python35

[이것이코딩테스트다] DFS/BFS 탐색 알고리즘 (Search) - 탐색 : 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정, 주로 자료구조 안에서 탐색 하는 문제를 다룸 - 대표적인 탐색 알고리즘 - DFS(Depth-First-Search) - BFS(Breadth-First-Search) -> 스택, 큐, 재귀함수, 그래프에 대한 이해 필요 자료구조(Data Structure) - 데이터를 표현하고 관리하고 처리하기 위한 구조 - 자료구조의 기초 개념 : 스택, 큐 -> 두가지 핵심적인 함수로 구성 - 삽입(Push) : 데이터 삽입 - 삭제(Pop) : 데이터 삭제 + 오버플로, 언더플로 고민 오버플로 : 특정한 자료구조가 수용할 수 있는 데이터의 크기가 가득 찬 상태에서 삽입할 때 발생 언더플로 : 특정한 자료구조에 데이터가.. 2024. 3. 8.
[이것이코딩테스트다] 그리디 그리디(Greedy) 유형- 현재 상황에서 지금 당장 좋은 것만 고르는 방법 -> 말 그대로 탐욕- 매 순간 가장 좋아 보이는 것을 선택- 현재 선택이 나중에 미칠 영향 고려X  코딩 테스트에서의 특징- 코테에서 그리디 알고리즘 문제 유형은 주로 사전에 외우고 있지 않아도 풀 수 있을 가능성이 높음-> 그리디 알고리즘 유형의 문제는 매우 다양. 다양하게 풀어봐야함.- 최소한의 창의력 요구. 현재 상황에서 가장 좋아 보이는 것만을 선택해도 문제 풀 수 있는지 파악할 수 있어야함- 문제에서 '가장 큰 순서대로', '가장 작은 순서대로' 처럼 기준을 제시해주기도함 -> 정렬 알고리즘과 짝을 이뤄 출제되기도 - 이 방법대로 하면 항상 최적의 해를 가지는지- 현재 선택할 수 있는 가장 최선의 방법이 무엇인지- 문.. 2024. 3. 5.
[이것이코딩테스트다] 구현 구현 유형이란? - 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제 - 말그대로 코드로 구현하는 유형 - 정확한 문법 숙지, 여러 라이브러리 사용 경험 필요 구현 유형 (구현이 핵심이 문제 유형) - 완전 탐색 : 모든 경우의 수를 다 계산하는 유형 - 시뮬레이션 : 문제에서 지시한 알고리즘을 한 단계씩 차례대로 직접 수행해야하는 유형 예제 4-1 상하좌우 (시뮬레이션) - 리스트 활용해서 이동계획별 이동거리 정의 - continue 활용해서 공간 벗어나는 경우 무시 n = int(input()) plans = input().split() # 초기 좌표 x, y = 1,1 # L,R,U,D 에 따른 이동방향 # 이렇게 list를 활용해서 move_types 별 이동을 정의할 수 있음 move_.. 2024. 3. 2.
단어 표현 방법 - 시소러스, 통계 기반 기법 자연어란? - 한국어, 영어 등 우리가 평소에 쓰는 말 자연어처리(Natural Language Processing, NLP)란? - 자연어를 처리하는 분야 - 우리의 말을 컴퓨에게 이해시키기 위한 기술(분야) 단어는 의미의 최소 단위라고 할 수 있음 자연어를 컴퓨터에게 이해시킬 때 '단어의 의미'를 이해시키는 게 중요! 즉, 단어의 의미를 잘 파악할 수 있는 표현 방법에 대해 고민해봐야 한다 딥러닝 이전의 고전적인 방법들은 크게 3가지가 있다. 1. 시소러스를 활용한 기법 2. 통계 기반 기법 3. 추론 기반 기법(ex. word2vec) 시소러스 - 시소러스 형태의 사전을 초창기에는 이용했음 - 동의어 그룹, 유의어 그룹 - 상위와 하위, 전체와 부분 등 세세한 관계를 그래프 구조로 정의 - NLP .. 2023. 9. 16.
BERT 활용 - 질의 응답(Question Answering) BERT는 Fine-tuning 하여 다양하게 사용할 수 있는데 그 중 하나가 질의응답(Question Answering)이다. 조금 더 공부해봐야 확실하게 말할 수 있겠지만, 이 글에서 말하는 질의 응답은 대화형 챗봇과는 다른 맥락이다. Fine-tuning이란? - 우리가 풀고자 하는 태스크의 데이터를 사전학습 된 BERT에 추가로 학습시키는 것 - 가중치 업데이트 - 실질적으로 BERT를 활용하는 작업이라고 볼 수 있다. 이 글에서 말하고자 하는 '질의 응답'을 정의하자면 - 추출형 질의응답(extractive question answering) - 질문에 답을 하는 것 - 구체적으로는, 질문(question)에 대한 답(answer)을 지문(context)에서 찾는 것 - 지문에 대해서 질문을 제.. 2023. 8. 9.
트랜스포머(Transformer) - 인코더, 디코더 이 글을 통해 트랜스포머의 인코더와 디코더에서 각각 어떤 일이 일어나는지, 뭐가 사용되는지를 총 정리해보고자 한다 인코더의 구조 - num_layers : 트랜스포머의 하이퍼 파리미터. 지정한 개수의 인코더층을 쌓음. 트랜스포머의 인코더는 크게 2개의 sublayer로 나눠짐 1. 멀티헤드어텐션층 2. 포지션-와이즈 피드포워드 신경망 층 자세하게는 다음과 같이 나뉨! 1. 임베딩 벡터에 포지셔널 인코딩을 수행 -> 단어의 위치 정보 반영 2. 셀프 어텐션 층을 지남 - 멀티 헤드 셀프 어텐션 3. 잔차 연결과 층 정규화 4. 피드포워드 신경망 층을 지남 5. 잔차 연결과 층 정규화 - 포지션 와이즈 피드포워드 신경망, 일반적으로 알고있는 피드 포워드 신경망 인코더의 멀티 헤드 셀프 어텐션 어텐션 개념 복.. 2023. 7. 19.