본문 바로가기

전체 글

(68)
[파이썬 알고리즘 인터뷰] 4. 그룹 애너그램 https://github.com/onlybooks/algorithm-interview GitHub - onlybooks/algorithm-interview: 95가지 알고리즘 문제 풀이로 완성하는 95가지 알고리즘 문제 풀이로 완성하는 코딩 테스트. Contribute to onlybooks/algorithm-interview development by creating an account on GitHub. github.com 1. 문제: leetcode 49. Group Anagrams 문자열 배열을 받아 애너그램 단위로 그룹핑하라 2. 풀이 def groupAnagrams(self, strs: List[str]) -> List[List[str]]: sorted_strs = collections.de..
[파이썬 알고리즘 인터뷰] 3. 가장 흔한 단어 https://github.com/onlybooks/algorithm-interview 1. 문제: 리트코드 819. Most Common Word 금지된 단어를 제외한 가장 흔하게 등장하는 단어를 출력하라. 대소문자 구분은 하지 않는다. 2. 내 코드 def mostCommonWord(self, paragraph, banned): #전처리 paragraph = paragraph.lower() paragraph = re.sub('["!?\',;.".]', ' ', paragraph) #단어 개수 세기 dict = {} for word in paragraph.split(): if word in dict.keys(): dict[word] += 1 elif word not in banned: dict[word..
[파이썬 알고리즘 인터뷰] 2. 문자열 뒤집기 github.com/onlybooks/algorithm-interview 1. 문제: 리트코드 344.Reverse String 문자열을 뒤집는 함수를 작성하라. 입력값은 문자 배열이며, 리턴 없이 리스트 내부를 직접 조작하라 2. 내 코드 def reverseString(self, s): for i in range(len(s)): s.insert(i, s.pop()) 3. 투 포인터를 이용한 풀이 def reverseString(self, s: List[str]) -> None: left, right = 0, len(s) - 1 while left < right: s[left], s[right] = s[right], s[left] left += 1 right -= 1 4. 파이썬다운 풀이 def rev..
[파이썬 알고리즘 인터뷰] 1. 로그 파일 재정렬 github.com/onlybooks/algorithm-interview GitHub - onlybooks/algorithm-interview: 95가지 알고리즘 문제 풀이로 완성하는 95가지 알고리즘 문제 풀이로 완성하는 코딩 테스트. Contribute to onlybooks/algorithm-interview development by creating an account on GitHub. github.com 1. 문제: 리트코드 937. Reorder Log Files 로그를 재 정렬하라. 기준은 다음과 같다. 1) 로그의 가장 앞부분은 식별자다. 2) 문자로 구성된 로그가 숫자 로그보다 앞에 온다. 3) 식별자는 순서에 영향을 끼치지 않지만, 문자가 동일할 경우 식별자 순으로 한다. 4) 숫자 ..
GAN이란? - GAN의 개념과 이해 1. 기본 개념 GAN(Generative Adversarial Networks, 생성적 적대 신경망)이란 비지도학습에 사용되는 머신러닝 프레임워크의 한 종류이다. GAN은 다른 알고리즘과는 달리 이전에는 없던 새로운 데이터를 생성할 수 있다. 이 알고리즘은 흔히 경찰과 위조지폐범 사이의 게임에 비유된다. 위조지폐범은 진짜 같은 화폐를 만들어 경찰을 속이기 위해 노력하고, 경찰은 위조지폐를 잘 감별하기 위해 노력한다. GAN에서도 생성모델(generator)은 최대한 진짜 같은 데이터를 만들기 위한 학습을 진행하고, 분류모델(discriminator)은 진짜와 가짜를 판별하기 위한 학습을 진행한다. GAN의 학습 과정에서는 분류모델을 먼저 학습시키고, 생성모델을 학습시킨다. 분류모델은 먼저 진짜 데이터를..
재귀함수를 이용해서 행렬의 곱 구하기 #include #include void matrix_mul(int** matrix_A, int** matrix_B, int** matrix_C, int len, int i, int j, int k) { /* 행렬의 길이가 2일때 행렬곱 계산하고 종료하기 */ if (len == 2) { matrix_C[i][k] += matrix_A[i][j]* matrix_B[j][k] + matrix_A[i][j + 1]* matrix_B[j + 1][k]; matrix_C[i][k + 1] += matrix_A[i][j]* matrix_B[j][k + 1] + matrix_A[i][j + 1]* matrix_B[j + 1][k + 1]; matrix_C[i + 1][k] += matrix_A[i + 1][j]* ..
[C] 시간복잡도가 O(n)인 재귀함수로 피보나치 수열 구하기 앞으로 2학년 때 들었던 자료구조 수업의 내용들을 복습해보려고 한다. 그 학기에 배웠던 여러 과목 중에 가장 어려웠고, 그만큼 중요한 수업이기 때문이다. 오늘은 그 첫 번째로 C언어를 이용해 시간복잡도가 O(n)인 재귀 구조의 피보나치수열을 만들었던 것을 살펴보려고 한다. 1. 시간복잡도가 O(n^2)인 경우 피보나치 수열을 구현하는 방법은 재귀 함수, 반복문 두 가지가 있다. 그중 재귀함수를 이용해 피보나치수열을 구하면 일반적으로 O(n^2)의 시간복잡도를 가진다. long long fib(int n) { if ( n T(n-2) 임으로, 2 이상의 n에 대하여 다음이 성립한다. T(n) = T(n-1) + T(n-2) + 1 > 2 x T(n-2) > 2^2 x T(n -4).... > 2^n/2 x..
[서평] <자존감 수업>을 읽고 1. 작가/책 소개 정신과 전문의이자 자존감 전문가 윤홍균 원장이 쓴 자존감 회복을 도와주는 책이다. 책은 7장으로 구성되어 있다. 1장은 자존감이 무엇인지, 왜 중요한지를 다루고 있다. 2~3장에서는 자존감이 부족할 때 생기는 인간관계의 문제와 이를 해결하기 위한 방법에 대해 설명하고 있다. 4~5장에서는 자존감을 낮추는 감정을 설명하고 이를 다루는 방법을 안내한다. 마지막 6~7장에서는 자존감을 끌어올릴 수 있는 구체적인 방법을 제시한다. 2. 자존감이 중요한 이유 자존감의 정의는 '자신을 어떻게 평가하는가'이다. 또한 자신을 사랑하는 정도라고 할 수도 있다. 자존감은 '정신 건강의 척도'라고 불린다. 우리가 하는 말, 행동, 판단, 선택, 감정 등 모든 것에 영향을 미치기 때문이다. 자존감이 높다면..