전체 글 86

이분검색

▣ 입력설명 임의의 N개의 숫자가 입력으로 주어집니다. N개의 수를 오름차순으로 정렬한 다음 N개의 수 중 한 개의 수인 M이 주어지면 이분검색으로 M이 정렬된 상태에서 몇 번째에 있는지 구하는 프로그램을 작성하세요. ▣ 입력설명 - 첫 줄에 한 줄에 자연수 N(3 M) inx = inx / 2; else inx = inx + inx / 2; } printf("%d", answer); return 0; } #pragma warning(disable:4996) #include #include int compare(const void* n1, const void* n2) { if (*(int*)n1 > * (int*)n2) return 1; else if (*(int*)n1 < *(int*)n2) retur..

Algorithm 2021.01.29

[순환 신경망] 긍정, 부정 감정 분석

극성 감정 분석: 긍정/부정이나 긍정/중립/부정을 분류한다. ex)영화리뷰나 음식점 리뷰에 적용되기 쉽다 네이버 영화리뷰 데이터를 이용하여 긍정/부정 감정 분석을 해보자 데이터 불러오기 훈련데이터로 15만개, 테스트 데이터로 5만개 https://raw.githubusercontent.com/e9t/nsmc/master/ratings_train.txt https://raw.githubusercontent.com/e9t/nsmc/master/ratings_test.txt 위 사이트에서 데이터들을 다운로드하여 불러온다. path_to_train_file = "ratings_train.txt" path_to_test_file = "ratings_test.txt" #데이터 불러오기 train_text = ope..

알면 유용한 파이썬 내장함수

char(i) 유니코드 값을 입력받은 후 그 값에 해당하는 문자열 반환 >>> char(97) 'a' >>>char(65) 'A' len(s) 리스트, 튜플, 문자열, 딕셔너리 등을 입력받아 해당 객체의 원소 개수를 반환 max, min 입력값 중 최대값, 최소값을 반환 >>> max(1,2,3) 3 >>> min([1,2,3]) 1 sorted 입력값을 정렬한 후 정렬된 결과값을 리스트로 반환 >>> sorted((4,3,1,0)) [0,1,3,4] >>>sorted(['c','b','a']) ['a','b','c'] 자료형 변환 (int, str) 문자열을 인자로 받아 해당 문자열을 정수형으로 변환, 객체를 입력받아 문자열로 변환 >>>int('3') 3 >>>str(3) '3' enumerate 순..

[개념] 정렬 알고리즘

선택 정렬(Selection Sort) 첫 번째 자리에 가장 작은 요소를 넣고, 두 번째 자리에 그 다음 가장 작은 요소를 넣고.... 가장 작은 요소를 찾으면 첫 번째 자리에 있는 요소와 교환 void selectionsort(int arr[], int size){ int minIndex; for(int i = 0; i < size - 1; i++){ minIndex = i; for(int j = i + 1; j < size; j++){ if(arr[j] < arr[minIndex]) minIndex = j; } swap(&arr[i], &arr[minIndex]); } } 삽입 정렬(Insertion Sort) key 원소 값의 알맞은 자리를 찾아 삽입 key보다 큰 값들은 하나씩 밀어버리고 작은 값..

Algorithm 2021.01.25

[개념] 탐색(검색) 알고리즘

선형 탐색/순차 탐색(Linear Search/Sequential Search) 순서대로 하나하나씩 찾기 왼쪽에서부터 순서대로 하나씩 확인해 나가는 것... 찾는 대상이 앞쪽에 있으면 짧은 시간에 탐색할 수 있지만, 뒤쪽에 있거나 결과가 없거나 탐색 대상이 많으면 많은 시간이 걸리고 비효율적일 수 있다 시작 복잡도: O(n) 이진 탐색/이분 검색(Binary Search) 반씩 제외시키면서 찾기 미리 오름차순이나 내림차순으로 정렬되어 있는 경우 사용할 수 있다. 가운데 있는 요소보다 큰지 작은지 보고 범위를 좁힌다. 예) 술자리에서 했던 소주 뚜껑 숫자 업다운으로 맞추기 평균적으로 이진 탐색법이 선형 탐색보다 빠르다. 시작 복잡도: O(logN) 해시법 (Hash)

Algorithm 2021.01.25

[순환신경망]GRU 레이어

GRU 레이어 :Gated Recurrent Unit LSTM레이어와 비슷한 역활을 하지만 구조가 더 간단 = 계산성의 이점이 있다 LSTM레이어보다 시그모이드 함수가 하나 적게 쓰였다 = 게이트의 수가 하나 줄어들었다는 것 r: reset 게이트를 통과한 출력 z: update 게이트를 통과한 출력 LSTM에서 풀었던 곱셈 예제를 GRU로 -학습 모델 model=tf.keras.Sequential([ tf.keras.layers.GRU(units=30, return_sequences=True, input_shape=[100,2]), tf.keras.layers.GRU(units=30), tf.keras.layers.Dense(1) ]) model.compile(optimizer='adam', loss=..

N!의 표현법

문제 코드 - C /C++언어 -접근한 방식 5 = 5 * 4 * 3 * 2 * 1 = 120 120의 소수들의 곱을 찾는게 아니라 5부터 하나씩 소수들의 곱으로 만들어서 구해본다. 1. N을 입력받고 2. 2부터 N까지 반복문을 돌려서 해당 값을 소수들의 곱으로 만들어 구한다. 3. prime이라는 배열에 구해진 소수들을 index로 가지는 값을 +1 4. 출력할때 index가 소수인지 확인 후, 그 값을 출력 -내가 작성한 코드 #include void findprime(int *arr, int a){ int index = 0; int now = a; for(int i = 2; i

Algorithm 2021.01.18
728x90