본문 바로가기

전체 글

(267)
재귀함수에 대한 분석! 재귀함수는 코드를 단순화하기 위해서 사용하는것이다. 마지막 ending condition 하나만 function 앞부분에 지정해두고, 같은 내용의 function 을 argument를 바꾸어서 계속 돌리는 것이다.어떤부분의 code 가 반복된느지 확인하고, 어떤 ending 조건이 있는지 확인해라. dp 의 경우에는 계산식이 3-4가지라서 if 문이 몇개 더들어가긴 하지만.. 재귀함수는 나를 항상 어렵게 만든다. DFS DP 모든 재귀함수는 이해하기 어렵고 복잡하다. 그래서 나는 이것을 공식화하고 싶었다. 어떤 어려운 세상문제이던지 파훼법은 있기 때문이다. 재귀를 작성할때 헷갈리는 것들이 있다. - while 을 써야하는지 IF를 써야하는지, - while 을 써야하는지 for 를 써야하는지. - ret..
엘라스틱 서치에 대해서 엘라스틱 서치의 사용 검색을 위해서 단독으로 사용되기도 하지만 ELK 스택으로 함께 사용되곤 한다. LogStash Elasticsearch Kibana 이렇게이다. ELK 스택은 무엇일까? 로드밸런싱이나 MSA 등으로 분산되어서 저장되어있는 WAS의 로그들을 한곳으로 모으고 검색하기 수월하게 하기 위해서 사용된다. Logstash 로 로그를 모아서 엘라스틱서치로 보내고 ElasticSearch 는 집계하고 검색한다 Kibana는 ElasticSearch 로 검색된 데이터들을 시각화해서 보여준다. 엘라스틱 서치의 구조 우선 하나의 서버인 노드가 있다. 노드가 모여서 클러스터가 된다. 클러스터는 각각의 클러스터와 데이터 접근, 교환이 안되는 독립적인 공간이다. 엘라스틱 서치가 빠른 이유 RDBMS 에서의 ..
순열과 조합 직접 개발하기 with yield 간단방법 def combi(arr,r): for i in range(len(arr)): if r == 1: yield [arr[i]] else: for next in combi(arr[i+1:],r-1):#뒤의것 yield [arr[i]]+next def permu(array, r): for i in range(len(array)): if r == 1: yield [array[i]] else: for next in permu(array[:i]+array[i+1:], r-1): #뺀것 yield [array[i]] + next
런타임에러가 발생하는 여러가지 이유들 요약! 배열에 할당된 크기를 넘어서 접근했을 때 전역 배열의 크기가 메모리 제한을 초과할 때 지역 배열의 크기가 스택 크기 제한을 넘어갈 때 0으로 나눌 떄 라이브러리에서 예외를 발생시켰을 때 재귀 호출이 너무 깊어질 때 이미 해제된 메모리를 또 참조할 때 8. 프로그램(main 함수)이 0이 아닌 수를 반환했을 때
청소년 상어 dfs마다 deepcopy로 배열을 새롭게 가져갈 수 있도록했어야함 빼놓고 구현한것 물고기는 빈칸이동이 가능하다 상어가 이동하면 빈칸이 된다. 배열 회전 tmp = board[x][:-1] board[x] = [board[x][-1]]+tmp
돈의속성 # 1. 품위없는 버릇 버리기 - 욕 , 불평, 안 좋은 자세 벌기 2. 도움을 청해라 3. 희생을 할 각오를 하라 - 공부를 위해서 잠을 포기 - 돈을 위해서는 더 일하기, 공부하기 - Second Job/ 4. 적어라 - Idea, 질문, 꺠닫는 것들을 기록해라 5.장기적인 묙표 6. 모두에게 사랑받은 욕심을 버려라. - 비난에 유연해라 , 가족의 지지가 전부이다. 부정적인 사람과 결별해라 7. 시간이 많다고 생각하지 마라. - 부자는 지금도 늦었다. 한살이라도 젊어서 투자하면 한살이라도 더 발리 부자가 될 수 있다. 복리의 마법으로 더 크게 부자가 될 수 있다. #1억 모으기 법칙 - 신용카드를 잘라라 > 복리가 남의 편이 되게 하지마라, 나의 편이 도게 해라. - 현재의 소득으로 살아라 > 할부를..
SET 의시간복잡도 + permutation + combination a in SET 은 a in LISt 보다 시간복잡도가 O (n) > O (1) 로 줄어든다. 왜냐하면 해시테이블이 있기 때문이다. from itertools import permutation SETS = set(permutiaions('배열',갯수)) 이렇게하면 set배열이 생긴다. for set in SETS : 이렇게 사용하자.
[백준 - 삼성 ] 나무재태크 #heapq 는 가장 큰것을 뺄 때 좋은거지 heappush로 정렬되서 들어가는건 아니었다. #정렬을 번식할때 한번만 해준다. ( 입력하고 뭐할때마다 정렬을 해줬더니 시간초과)