전체 글

    11/27 TF-IDF, 클래스 분리

    TF-IDF 기법을 각 유저들이 작성한 리뷰에 적용하여 추천 목록에 있는 음악들의 관련 키워드를 나타냈다. 파이썬 sklearn 모듈의sklearn.feature_extraction.text에서 TfidfVectorizer를 import하여 TF-IDF를 사용했고, 추출된 단어들 중 the, is, are, a, he 등의 쓸모없는 단어들을 걸러내기 위해 sklearn.feature_extraction의 stop_words를 사용했다. stop word를 사용해도 음악 리뷰라는 특성 상 music이나 disk, cd, album과 같은 단어들이 많이 등장하는 것을 확인할 수 있었다. 또한 데이터 파일 자체에 저장되어 있는 &#8217, &#34와 같은 HTML 코드들도 TF-IDF 결과에 섞여 나오기도 ..

    [BOJ] 3944 나머지 계산

    문제 링크 https://www.acmicpc.net/problem/3944 모든 알고리즘 문제는 C++로 구현되어 있습니다. 이 문제는 입력받은 모든 자릿수를 더하고, 이를 b-1로 나눈 나머지를 구하면 답을 구할 수 있다. 자세한 식 도출 과정은 다음과 같다. 123456(7) mod 6을 예로 들어보자. 123456(7)을 10진수로 변환하면 1 * 7^5 + 2 * 7^4 + 3 * 7^3 + 4 * 7^2 + 5 * 7^1 + 6 * 7^0 이다. 이 수에 mod 6을 하면 모듈러 연산의 분배법칙을 이용하여 (1 * 7^5) mod 6 + (2 * 7^4) mod 6 + (3 * 7^3) mod 6 + (4 * 7^2) mod 6 + (5 * 7^1) mod 6 + (6 * 7^0) mod 6 ..

    Mobile Robot Controller ADD-ON 개발

    이번 학기에 수강하는 소프트웨어 공학 과목에서 주어진 팀 프로젝트인 '재난 구역 탐사에 사용하는 Mobile robot과 함께 사용할 ADD-ON 프로그램 개발'에 대해서 기록한다. 주어진 프로젝트의 시나리오는 다음과 같다. 기존의 mobile robot의 움직임을 제어하는 시스템인 SIM은 오퍼레이터가 재난 지역의 정보를 전부 알고 있는 상태에서 로봇의 robot movement interface를 통해서 로봇의 동작을 수동으로 제어하는 시스템이다. SIM을 재사용하되 재난 지역에 대한 정보가 부족한 상태에서 로봇의 동작을 자동으로 제어할 수 있는 ADD-ON 시스템을 개발하는 것이 프로젝트의 목적이다. ADD-ON은 SIM으로부터 3개의 입력 (위치 센서, 위험 감지 센서, 중요 지점 센서)를 받는다..

    [BOJ] 2003 수들의 합 2

    문제 링크 https://www.acmicpc.net/problem/2003 모든 알고리즘 문제는 C++로 구현되어 있습니다. 이 문제는 모든 경우의 수를 생각하면서 풀면 O(N^2)의 시간 복잡도가 나오게 된다(시작지점 0~N, 도착지점 0~N까지 움직이면서 경우의 수를 푸는 경우). 문제의 제한 시간이 0.5초이고 N이 최대 10000까지 나올 수 있으므로 이렇게 구하면 시간 제한에 걸릴 수 있다. 좀 더 시간 복잡도가 작은 방법이 필요하다. 수열의 처음 값을 가지고 있는 변수 sum을 생각해보자. i를 1부터 N까지 증가시키면서 sum에 A[i]의 값을 더한다. 더한 값이 M과 동일하다면 경우의 수를 1 늘려주고, M보다 크다면 sum 값이 M보다 작아질 때까지 가장 마지막에 더한 값부터 차례대로 ..