전체 글 35

[백준] 10815번: 이분탐색과 딕셔너리 - Python

https://www.acmicpc.net/problem/10815 위의 문제를 풀다가 이것 저것 생각하다가 풀이를 2개를 작성했는데간단하게 정리하려고 작성합니다.두 가지 풀이를 했습니다.문제를 먼저 보면, max(N)은 50만개, max(M)은 50만개라O(N^2)으로 시간복잡도가 넘어가는 순간 2500억번의 계산을 해야합니다.그러면 우리의 갓갓 PyPy3도 2초는 넘길 것 같습니다. (여기서는 O(N * M)이죠)그래서 이 문제 풀이의 핵심은 이중 for문을 사용하지 말고리스트 안에 들어있는 걸 확인해라!! 입니다.그러면 다른 방법은 많지만 저는 보통 딕셔너리와 이중탐색을 떠올립니다. (정답이 아닐 수 있지만뭐 제가 떠올리는 것들입니다.)딕셔너리의 서치 속도는 O(1)이니, 없는 카드만 신경쓰면 될 ..

[평가 지표] CAP Curve와 ROC Curve (feat. Confusion matrix)

Classification 모델의 평가하는 지표를 설명하면서 CAP Curve가 나왔는데,  ROC Curve랑 축을 제외하고 비슷해서 정리하기 위해서 작성한다.  1. CAP (Cumulative Accuracy Profile) Curve"누적" 정확도 프로파일 곡선CAP Curve를 알아보려면, 나온 맥락부터 알아야한다. Confusion matrix부터 살펴보자. 예측 데이터TrueFalse실제 데이터TrueTure PositiveFalse NegativeFalseFalse PositiveTure Negative다들 알고 있는 내용일 것이다. Classfication 문제에서 모델의 성능을 측정하기 위해서 사용한다. 여기서 살펴보야아 할 것은 Type1, Type2 Erorr이다.Type 1 Err..

[Python] 재귀 함수 호출 깊이 초과

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/77486 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr이 문제의 enroll의 길이가 1만개가 전부라 단순하게 재귀함수를 호출하면 O(N^2) 졍도로 시간복잡도가 나오지 않을까? 라는 생각에 재귀함수 호출로 문제를 풀이하려고 시도했다. def to_parents(parents, moneys, name, earn_money): if parents[name] == "": moneys[name] += earn_money ..

[Typescript] 맥 command not found: tsc 해결 방법

진행하고 있는 프로젝트에서 프런트엔드 단이 필요해서 typescript로 구현해 보려는 순간tsc 명령어가 실행이 안되는 오류가 발생했다. 이러면 typescript를 실행할 수 없다. 해결 방법순서대로 따라오자.1. npm 전역 패키지에 접근이 가능한지 확인하자npm list -g --depth=0여기서 2가지 경우가 있다.1)  /Users/본인계정/.npm-gloabl/lib └── typescript@5.4.5 가 나온 경우 이 블로그에서 해결 불가능하다. 다른 글을 찾아보자 (영문 검색 추천)2.) npm error path. npm-global라는 문구가 나온 경우 이러면 npm 전역 패키지 접근이 불가능한 경우다. 경로를 zshrc에 직접 설정해줘야 한다. (1) 전역 설치 디렉토리 생성mk..

[취업 준비] 토익 865점 후기, 공부법

목차 0. 들어가는 글1. 토익 점수2. 공부법(1) LC(2) RC3. 책 추천4. 마치는 글들어가는 글토익은 2년 전(22년 2월)에 한번 응시했고, 635점이었다.어쩌다 보니 졸업이 1년 남은 취준시즌이 와버렸고 금융권 DS직군을 원하고 있는데, "어학 성적"이 필수인 곳들이 많아서 토익을 해야만 했다. 그래서 학교 장학금도 받을 겸, 어학 성적도 만들 겸 토익에 도전했다.어학 성적의 기한이 2년이니까, 혹시 취업한 후에 내부 승진평가에 들어가면 또 해야 하니까 미래의 나를 위해서 적는 것이기도 하다.그리고 혹시 토익을 보시는 분들에게 조금은 도움이 되지 않을까 해서 적어본다. 일단 목표 독자는 LC가 350을 넘는데, 일정 점수 이상 안올라가는 사람 (LC는 확실히 도움이 될 것 같다.)토익 공부..

취업준비 2024.05.14

[NLP] Topic modeling - 빅리더 2차 프로젝트 (주) 대상

특이사항 특성상 겹치는 데이터가 많고 각 시간 마다 나올 수 있는 단어가 한정적이라고 판단 자연어 처리로 오타 및 불용어 처리 이후 주제를 찾을 수 있는 방법을 찾음 LDA 하이퍼파라미터 튜닝으로 49개의 토픽 도출 likelihood를 기반으로 주제를 추론하는데 각 주제 마다 겹치는 단어들이 너무 많음 (곡자, 교반, 온도, 수분기 등) 때문에  perplexity, coherence가 매우 좋지 않음 (논문 상 음수가 나올 수 없는데 음수로 나옴) , 심지어 BoW 방식이라 단어의 순서가 고려되지 않아서 문장의 뜻 파괴 BERTopic BERTopic은 각 문서 당 주제가 하나라고 추정해서 여러 개의 주제가 들어간 문장을 하나의 주제로 합쳐버림 ex) A + B 와 A만 있는 문장이 같은 주제로 엮임..

TIL/NLP 2023.11.14

[백준]수들의 합2

문제 출처: https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 오랜만에 알고리즘.. 빅리더 교육을 받은 9주 동안 못푼 문제들을 푸는 시간을 가졌다. 문제를 그냥 단순하게 이중 for문을 사용하면 끝날줄알았는데, 시간초과.. 이중 for문을 돌려도, index로 끊는다고 해도 시간초과가 났다.. 결론은 아이디어가 문제였는데, for문을 돌다가 숫자가 원하는 m보다 작으면 끝나는 index를 늘려야했고, m..

[스터디챌린지] ICT융합대학 스터디 챌린지 9주차(8/26 ~ 8/31)

회고 7월 1일자 목표는 빅리더 아카데미 커리큘럼 따라가면서 깃허브 업로드 선형대수, 미적분학, 통계학개론 마크다운으로 블로그 작성하면서 마크다운 실력 키우기 프로그래머스 SQL 문제 하루 적어도 하나씩 풀기 위와 같았다. 과연 이걸 다 지켰을까? 생각해보면, 2번은 성공했고, 나름 1번도 성공했다. 끝나고 나서 깃허브에 모두 내용을 정리하고 깃허브에 올렸으니까. 근데 3번은 힘들었고, 4번도 학교에서 배운 내용으로는 조금 어렵더라.. 그래도 이번 방학은 나름 열심히 살았고 당장 내일부터 프로젝트 인턴쉽 시작이다.. 힘내자 김광영!!

[스터디챌린지] ICT융합대학 스터디 챌린지 8주차(8/19 ~ 8/25)

빅리더 프로젝트 인턴십에 참여한지도 벌써 8주라는 시간이 흘렀습니다. 시간 참 빠르네요. 오늘은 알고리즘 코딩테스트를 보고..? 본게 맞나 싶긴 합니다. 3시간 동안 삼성 코딩테스트 한 문제를 못풀었어요.. ㅎ 중/상급반으로 시험을 진행하다가 아기상어 문제를 1시 30분 풀다가 ㅎ 포기하고 기초반으로 넘어가서 3문제를 분명 12시 쯔음에 다 풀었는데 백준이 오륜가 아니면 그룹이 오륜가 맞았다고 표시가 안나와요.. ㅎ 요 마지막 문제가 백준 3085번 사탕게임인데 분명 시간내에 풀었는데 체크가 안됩니다. ㅠ 뭐 그래도 한 30분이 안걸려서 풀었으니까 만족은하는데 시험 점수 반영한다고 하셨는데... ㅎ 모르겠습니다. 그리고 방금? 3시간 전 쯤 프로젝트 신청서를 제줄했습니다. 1차는 9월 1일 ~ 10월 1..

[스터디챌린지] ICT융합대학 스터디 챌린지 7주차(8/12 ~ 8/18)

사실 문제 선지 4개가 제일 헷갈렸던 문제입니다. 등장 빈도가 적은 단어 제거: 텍스트 데이터에서 특정 단어가 매우 적게 등장한다면, 그 단어는 분석에 큰 영향을 미치지 않을 가능성이 높습니다. 이러한 단어를 제거함으로써 데이터의 크기를 줄이고 계산 효율성을 높일 수 있습니다. 길이가 짧은 단어 제거: 길이가 짧은 단어(예: "a", "an", "the" 등)는 종종 노이즈로 작용할 수 있으며, 분석에 큰 의미를 가지지 않을 수 있습니다. 이러한 단어를 제거하면 분석의 정확성을 높일 수 있습니다. 대소문자 구분: 대소문자 구분은 텍스트 정제 작업에 일반적으로 포함되지 않습니다. 대소문자 구분은 분석의 목적과 데이터의 특성에 따라 선택적으로 적용될 수 있으며, 일반적인 텍스트 정제 작업과는 직접적인 관련이..