전체 글
JavaScript - 함수
JavaScript의 함수는 다른 모든 객체 처럼 속성과 메소드를 가질 수 있으므로, 일급(First-class) 객체입니다. 다른 객체와 함수를 구별 하는 것은 함수는 호출할 수 있다는 점입니다. 즉, Function 객체 입니다. Function 객체 new Function([arg1[, arg2[, ...argN]],] functionBody) arg1, arg2, ... argN 쉼표로 구분한 유효한 식별자 목록이어야 한다. functionBody 함수 정의를 구성하는 JavaScript 문을 담은 문자열. new 연산자를 사용하지 않고 함수로써 Function을 호출하는 것은 생성자를 호출하는 것과 같습니다. 하지만, new 연산자가 제거됨으로써 코드의 크기를 약간(4 바이트 작게) 줄일 수 있..
유튜브 댓글 감성 분석하기 (Sentiment Analysis) - (1)
1. 개발환경 세팅하기 저는 로컬에서 miniconda로 가상환경을 생성하고, 프로젝트를 진행하였습니다. 형태소 분석기로는 이전 프로젝트를 진행했을 때, 비교적 효과가 좋았던 kiwipiepy(https://github.com/bab2min/kiwipiepy)를 사용하였고, 이외의 필요한 라이브러리는 다음과 같습니다. pip install kiwipiepy conda install numpy pandas matplotlib scikit-learn tensorflow 2. 네이버 쇼핑 리뷰 데이터 다운로드 및 전처리 주로 제품 리뷰 유튜브 댓글이 타겟인 감성 분석 모델을 생성하기 위해서 네이버 쇼핑 리뷰 데이터를 통해 학습을 진행하였습니다. 다운로드 : https://github.com/bab2min/co..
socket.io 실시간 chat API 서버 (Node.js, Socket.io, Redis)
이전 포스팅을 봤을 때, node-multiroom-chat 레포지토리에 대한 내용만 기술하고, HJ커뮤니티에서 마무리 했던 ChatServer 레포지토리의 대한 내용을 기술하지 않아서 이번 기회에 포스팅 하게되었습니다. https://github.com/geun9716/ChatServer GitHub - geun9716/ChatServer: A Template ChatServer using socket.io, cluster, redis A Template ChatServer using socket.io, cluster, redis - GitHub - geun9716/ChatServer: A Template ChatServer using socket.io, cluster, redis github.com ..
[자료구조] B Tree
B 트리는 이진트리에서 발전되어 모든 리프 노드들이 같은 레벨을 가질 수 있도록 자동으로 밸린스를 맞추는 트리입니다. 정렬된 순서를 보장하고, 멀티레벨 인덱싱을 통한 빠른 검색을 할 수 있기 때문에 DB에서 사용하는 자료구조중 한 종류입니다. B트리는 하나의 노드에 다수의 정보를 저장할 수 있습니다. 최대 M개의 자식을 가질 수 있는 트리를 M차 B트리라고 하며, 다음과 같은 특징을 갖습니다. 노드는 최대 M개부터 M/2개 까지의 자식을 가질 수 있습니다. 노드에는 최대 M-1개부터 M/2 -1 개의 키가 포함될 수 있습니다. 노드의 키가 x개 라면 자식의 수는 x + 1개입니다. 최소 차수는 자식수의 하한 값을 의미하며, 최소 차수가 t 라면 M=2t-1을 만족합니다. (최소 차수가 2라면 3차 B트리..
[백준 17609] 회문 - python
문제 회문(回文) 또는 팰린드롬(palindrome)은 앞 뒤 방향으로 볼 때 같은 순서의 문자로 구성된 문자열을 말한다. 예를 들어 ‘abba’ ‘kayak’, ‘reviver’, ‘madam’은 모두 회문이다. 만일 그 자체는 회문이 아니지만 한 문자를 삭제하여 회문으로 만들 수 있는 문자열이라면 우리는 이런 문자열을 “유사회문”(pseudo palindrome)이라고 부른다. 예를 들어 ‘summuus’는 5번째나 혹은 6번째 문자 ‘u’를 제거하여 ‘summus’인 회문이 되므로 유사회문이다. 여러분은 제시된 문자열을 분석하여 그것이 그 자체로 회문인지, 또는 한 문자를 삭제하면 회문이 되는 “유사회문”인지, 아니면 회문이나 유사회문도 아닌 일반 문자열인지를 판단해야 한다. 만일 문자열 그 자체로..
최소스패닝트리(Minimum Spanning Tree) - 프림 알고리즘, 크루스칼 알고리즘
최소스패닝트리 란? 그래프 G에 대한 신장트리는 G의 마디를 모두 포함하면서 트리로 연결된 그래프이다. 이 중 모든 간선의 가중치가 최소가 되는 신장트리를 최소비용신장트리. 즉, 최소 스패닝 트리(MST)라고 한다. 존재하는 신장트리를 모두 찾아보는 방법은 최악시간복잡도가 지수시간보다 나쁘기 때문에, 탐욕적 방법을 사용하면 효율적으로 문제를 풀 수 있다. 부분적으로 최적인 고려 사항에 대해 이음선을 선택하는 알고리즘으로 프림 알고리즘과 크루스칼 알고리즘이 존재한다. 프림 알고리즘 : 최소 스패닝 트리를 찾기 위해 정점 부분집합에 이웃한 거리들을 판단하며 구한다. 즉, 신장트리에 붙은 마디 중 가장 minimum한 값을 선택하면서 만들어가는 방식이다. 알고리즘 단계 1. 하나의 꼭지점을 선택하여 이웃한 거..
[백준 15724]주지수 - python
문제 네모 왕국의 왕인 진경대왕은 왕국의 영토를 편하게 통치하기 위해서 1X1의 단위 구역을 여러 개 묶어서 하나의 거대 행정구역인 주지수(州地數, 마을의 땅을 셈)를 만들 예정이다. 진경대왕은 주지수를 만들기 위해서 일정한 직사각형 범위 내에 살고 있는 사람 수를 참고 자료로 쓰고 싶어한다. 진경대왕은 굉장히 근엄한 왕이기 때문에 당신에게 4개의 숫자로 직사각형 범위를 알려줄 것이다. 예를 들어, 위와 같이 사람이 살고 있다고 가정할 때 의 직사각형 범위의 사람 수를 알고 싶다면 진경대왕은 네 개의 정수 1 1 3 2를 부를 것이다. 마찬가지로 는 1 1 1 4, 은 1 1 4 4가 될 것이다. 진경대왕을 위하여 이 참고 자료를 만들어내는 프로그램을 작성해보자. 입력 첫째 줄에 영토의 크기 N, M(1..
[프로그래머스] 여행경로(DFS/BFS)
문제 설명 주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 "ICN" 공항에서 출발합니다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 모든 공항은 알파벳 대문자 3글자로 이루어집니다. 주어진 공항 수는 3개 이상 10,000개 이하입니다. tickets의 각 행 [a, b]는 a 공항에서 b 공항으로 가는 항공권이 있다는 의미입니다. 주어진 항공권은 모두 사용해야 합니다. 만일 가능한 경로가 2개 이상일 경우 알파벳 순서가 앞서는 경로를 return 합니다. 모든 도시를 방문할 수 없는 경우는 주어지지 않습니다. 입출력 예 tickets return [["ICN"..