분류 전체보기 74

Day 36. Topic Modeling

Topic Modeling은 Text Mining 기법 중에서 가장 많이 활용되고 있습니다. Topic Modeling은 Unsupervised Learning 기반의 방법 중 하나로써, 말 그대로 여러 문서들에서 주제를 찾아내는데 사용하는 알고리즘 중 하나입니다. 아주 많은 문서의 주제들을 추출할 수 있고, 시간별로 이 방법을 적용하여 대중의 트렌드를 파악하는 등 다양하게 적용되고 있습니다. Topic Modeling 비정형 데이터 (raw 정보에 가까운 데이터) : 이미지, 텍스트 등 정형 데이터 : table 형태로 구성된 정보들 이러한 text data들을 숫자로 나타내는 (전처리 하는) 방법을 Bag-of-Words 라고 한다. (예시) 뉴스 기사 정보들을 100개 정도 모았다고 가정했을 때, ..

python 문법

인덴트(들여쓰기) python의 대표적인 특징으로써 공백 4칸을 원칙으로 한다. 네이밍 컨벤션 python의 변수명 네이밍 컨벤션은 자바와 달리, 각 언어를 밑줄( _ )로 구분하여 표기하는 스네이크 케이스를 따른다. (스네이크 케이스는 일반적으로 모두 소문자로 표기하지만, 경우에 따라 시작 문자는 대문자로도 표기한다.) 타입 힌트 python은 동적 타이핑 언어이지만, 타입을 지정할 수 있는 타입 힌트 기능이 존재한다. ex) def fn(a: int) -> bool: 하지만, 동적으로 할당될 수 있으므로, 문자열에 정수를 할당하는 등의 사용은 지양해야 한다. 리스트 컴프리헨션 python은 map, filter와 같은 함수형 기능을 지원하며, 람다 표현식도 지원한다. ex) >>> list(map(l..

Python/Algorithm 2022.06.04

백준 _ BFS ( Python / 파이썬)

DFS와 BFS 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 제한 조건 시간 제한 : 2초 메모리 제한 : 128MB 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력 첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS..

[programmers] LV 1. 자연수 뒤집어 배열로 만들기 (Python/파이썬)

문제 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345 [5, 4, 3, 2, 1] ▶ my code def solution(n): answer = str(n)[::-1] ans = [] for i in answer: ans.append(int(i)) return ans ▶ 아이디어 문자열 뒤에 [::-1]을 붙여주면, 반대로 배열해줍니다.

[programmers] LV 1. 정수 내림차순으로 배치하기 (Python/파이썬)

문제 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이상 8000000000 이하인 자연수입니다. 입출력 예 n return 118372 873211 ▶ my code def solution(n): answer = str(n) answer = ''.join(sorted(answer, reverse=True)) return int(answer) ▶ 아이디어 str은 a.sort()를 사용할 수 없다. 그러나 sorted만을 사용하기에는 결과 값이 '8', '7', '3', '2', '1', '1' 이 될 것이다. 그렇기 때문에, ''.join..

[programmers] LV 1. 정수 제곱근 판별 (Python/파이썬)

문제 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한 사항 n은 1이상, 50000000000000 이하인 양의 정수입니다. 입출력 예 n return 121 144 3 -1 입출력 예#1 121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다. 입출력 예#2 3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다. ▶ my code def solution(n): num = n**(1/2) if num == int(num): return (num+1)**2 else: return -1 ▶ my code ..

[programmers] LV 1. 제일 작은 수 제거하기 (Python/파이썬)

문제 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 제한 조건 · arr은 길이 1 이상인 배열입니다. · 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 입출력 예 arr return [4, 3, 2, 1] [4, 3, 2] [10] [-1] ▶ my code def solution(arr): if len(arr) == 1: return [-1] else: arr.remove(min(arr)) return arr ▶ 아이디어 rem..

[programmers] 스킬 체크 테스트 Leve.1 (Python/파이썬)

문제 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한 조건 x는 1 이상, 10000 이하인 정수입니다. 입출력 예 arr return 10 true 12 true 11 false 13 false 입출력 예 #1 10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다. 입출력 예 #2 12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다. 입출력 예 #3 11의 모든 자릿수의 합은 2..