[프로그래머스 lv 2] 타겟 넘버(깊이/너비 우선 탐색(DFS/BFS))
·
✨ 공부 기록/알고리즘
아이디어 : 경우의 수는 더하거나(+), 빼거나(-) 둘 중 하나. 그러면 트리 형식처럼 만약 2개의 숫자가 있다면 ++, --, -+, +-을 모두 고려하는 그런 방식이 될 수 있을 것 같다. -> 이렇게 하려면 더하는 경우와 빼는 경우를 각각 따로 탐색해야 한다. 즉, 따로 돌아가게 한다는 점에서 재귀함수를 써야 할것 같기도 한데... 즉, DFS 문제인것 같기는 하다. global answeranswer = 0def calculate(sign, numbers, cal_num, count, target): global answer if count
[프로그래머스 lv 1] 같은 숫자는 싫어(코딩테스트 고득점 Kit/스택/큐)
·
✨ 공부 기록/알고리즘
def solution(arr): answer = [] check_pt = arr[0] answer.append(check_pt) for i in range(1, len(arr)): if check_pt != arr[i]: check_pt = arr[i] answer.append(check_pt) return answer
[프로그래머스 lv 0] 컨트롤 제트
·
✨ 공부 기록/알고리즘
아이디어 : 바로 뒤에 Z가 나오는지를 고려 def solution(s): data = s.split() data.append('0') answer = 0 for i in range(len(data)-1): if data[i]!='Z': answer += int(data[i]) if data[i+1] == 'Z': answer -= int(data[i]) return answer
[프로그래머스 lv 1] 과일 장수
·
✨ 공부 기록/알고리즘
def solution(k, m, score): score.sort(reverse=True) answer = 0 for i in range(0,len(score)+1,m): if i-1 > -1: answer += score[i-1]*m return answer
[프로그래머스 lv 2] 오픈채팅방
·
✨ 공부 기록/알고리즘
아이디어 : Change가 나오는 경우에만 닉네임이 바뀌기 때문에 Change가 나오면 해당 아이디의 닉네임을 최종적인 Change 값으로 바꾸고 Enter와 Leave 부분을 print 한다. => 나갔다가 들어오는 경우에도 닉네임이 바뀌기 때문에 그 부분을 고려하여야 한다! 나가는 건 신경쓰지 말고 들어오는 부분(Enter)을 신경쓰면 된다. 그리고 Leave의 경우 이름이 포함되어 있지 않기 때문에 아이디-이름을 관리하는 리스트(튜플)이 따로 필요하다. # 첫 번째 시도 (시간 초과 경우 발생)def solution(record): id_name_list = [] splited_list = [] for data in record: splited = data.split()..
[응용데이터분석] 데이터 분석 흐름 정리 - 데이터 준비 과정
·
✨ 공부 기록/[24-1] 데이터 분석
데이터 분석 큰 그림 흐름 1. problem definition2. solution3. conclusion 데이터 분석 과정데이터 준비 - 데이터 준비 큰 흐름 : 데이터 적절하게 수집 -> 데이터 프로파일링(데이터가 어떤 형태인지, 한 번 쭉 보면서 이해) -> 이상한 값, 빠진 값 들을 정제 -> 데이터를 분석할 수 있는 형태로 재구조화 -> 모델 만들기  Data Preparation1. Exploratory Data Analysis(EDA) 1) 도메인 지식 기반 데이터 탐색 : 전체적으로 탐색한다. 이 데이터는 어디서 왔고, 무엇에 대한 데이터인지 2) 속성 탐색 : 컬럼의 의미와, 각 특징들 3) 패턴 탐색 : 데이터의 전체적인 패턴을 파악(예. 시간의 흐름에 따라 패턴이 있나?) 2. Da..
[데이터베이스] 채팅방 위키 데이터베이스 설계
·
✨ 공부 기록/Database
1) 설계 배경 설계하고자 하는 프로젝트는 ‘채팅방 위키’이다. 이 프로젝트의 결과물은 채팅 내용을 위키 형식으로 정리하여 정보들을 쉽게 습득할 수 있도록 한다. 일상대화 위주의 채팅방은 굳이 그럴 필요가 없을 수 있지만, 많은 사람들이 들어가 있는 단체 채팅방이나, 회의, 오픈채팅방의 경우에는 수없이 많은 대화가 다양한 주제로 이루어진다. 그 중에서 나에게 필요한 내용은 있을 수도, 없을 수도 있다. 그러나 만약 필요한 정보가 없었을 경우, 메세지를 확인하느라 낭비한 시간이 피로감이 쌓이고 신경이 분산되어 삶의 능률이 떨어질 수 있다. 그렇기 때문에 꼭 필요한 정보만 확인하고, 그렇지 않은 대화 내용은 추후 볼 수 있도록 정리한 위키 형식의 ‘채팅방 위키’ 프로젝트가 필요하다. 이 프로젝트의 결과물을 ..
[T아카데미] 자연어 언어모델 ‘BERT’ 2강 정리(1) - 언어 모델(language model)
·
✨ 공부 기록/NLP
[토크ON세미나] 자연어 언어모델 ‘BERT’ 2강 - 언어 모델 (Language Model) | T아카데미 : '자연어'의 법칙을 컴퓨터로 모사한 것. 주어진 단어들로부터 그 다음에 등장한 단어의 확률을 예측하는 방식으로 학습한다. 다음에 등장할 단어를 잘 예측한다는 건 그 언어의 특성이 잘 반영된 모델이며, 문맥을 잘 계산하는 것으로 볼 수 있다. [Markov 확률 기반의 언어모델] : 기초적인 모델이다. Markov Chain의 형태로 나타낼 수도 있고, table로도 나타낼 수 있는데, 각 단어의 뒤에 어떤 단어가 올지 통계를 내서 확률을 나타낸다.(잘 정리된 블로그 글 - 비전공자가 이해한 '마코프 체인(Markov Chain)') +) Markov와 RNN의 차이점은 무엇일까?(stacko..
[T아카데미] 자연어 언어모델 ‘BERT’ 1강 정리
·
✨ 공부 기록/NLP
[토크ON세미나] 자연어 언어모델 ‘BERT’ 1강 - 자연어 처리 (NLP) | T아카데미 - 규칙/지식 기반 접근법 - 확률/통계 기반 접근법 - 예) TF-IDF를 이용한 키워드 추출 [데이터 전처리] : 개행 문자 제거, 특수 문자 제거, 공백 제거, 중복 표현 제거, 이메일/링크 제거, 제목 제거, 불용어 제거, 조사 제거, 띄어쓰기/문장 분리 보정, 사전 구축 등 -> [토크나이징] : 문장을 특별한 의미가 있는 단위로 자르는 것. - 예) 한국어는 어절이 의미를 가지는 최소단위가 아니다. 따라서 형태소 단위로 자름. -> [특징 추출과 분류] : 자연어에서는 어떻게 데이터를 좌표평면 위에 표현할 수 있을까? -> one hot 인코딩을 이용할 수 O. 다만 단어의 의미를 나타내지는 못하고, ..