일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 하둡1.0
- 데이터엔지니어링
- 문맥교환
- 실행엔진
- 빌드도구
- 지연연산
- 런타임데이터영역
- EMR 구조
- 프로그래머스
- Spark 최적화
- Spark
- 프로그래머스힙
- freenom
- 스파크
- 하둡에코시스템
- kafka 설치
- 데이터 수집
- ORACLE MSSQL차이
- Databricks
- AWS Crawler
- ORACLE문법
- 하둡
- 데이터베이스복사
- 서버간 복사
- 하둡2.0
- Catalyst Optimizer
- 프로그래머스 큰 수 만들기
- 카프카
- lazy evaluation
- 데이터파이프라인
- Today
- Total
목록알고리즘 (22)
띵유로그
문제 설명은 중요한게 아니니 안하겠다...ㅎ DFS로 풀다가 recursion error 가 떠서 기록해둔다. 파이썬에서는 1000번 이상의 recursion이 발생하면 recursion error 가 뜬다. 그럴땐 아래코드를 추가해서 해결하면된다. import sys sys.setrecursionlimit(100000) 이 문제에서는 O(n^3) 이기도하고 row, col이 각각 100 이면 최대 10000번의 재귀가 발생한다. 설정 된 recursionlimit 도 확인해보자. import sys print(sys.getrecursionlimit())

배열이 주어지고 배열의 일부 원소 합중 최대가 되는 조합을 찾는다. 이때 인접한 원소는 선택할 수 없다. max_arr배열에 해당 원소 까지의 최대가 되는 합을 계속해서 갱신해 나간다. 모든 원소가 음수일 때는 0을 return 해야하므로, 처음에는 0과 arr[0]중 최대값을 넣는다. index 1 까지의 최댓값 : arr[0]만 선택할 때 or arr[1]만 선택할 때 index 2 까지의 최댓값 : arr[2]만 선택할 때 or arr[1]만 선택할 때 or arr[0]만 선택할 때 or arr[0] + arr[2] ... index i 일때 max(max_arr[i-1],max(max_arr[i-2],max(arr[i], arr[i]+max_arr[i-2]))) ㄴ> max(본인선택하지 않고 이전..

문제 요약 : 기계마다 제품 한개를 만드는데 걸리는 시간이 다르다. 제품 한 개를 만드는데 걸리는 시간이 주어졌을 때 목표 생산량을 채우려면 최소 몇일이 소요 되는가? INPUT 기계 대수 / 목표생산량 각 기계별 제품 1개 생산소요 시간 접근법) 이 문제는 몇일이 걸릴지 시간을 찾는(SEARCH) 문제이다. 탐색을 위해서는 우선 탐색하고자 하는 값의 범위에 대한 정의가 필요하다. 최소시간 ~ 최대 시간 중 binary 탐색을 통해 조건을 만족하는 시간을 찾을 것이다. 최소시간 : 모든 기계의 생산량이 하루 생산량이 가장 적은 기계와 같다고 가정. -> 필요한 시간 = 목표생산량 * max(생산 소요 시간) //기계대수 최대시간 : 모든 기계의 생산량이 하루 생산량이 가장 많은 기계와 같다고 가정. ->..

첫번째 줄 : magazine 두번째 줄 : note print Yes if he can replicate his ransom note exactly using whole words from the magazine; otherwise, print No. def checkMagazine(magazine, note): dict_mag={} for word in magazine: if word not in dict_mag: dict_mag[word]=1 else: dict_mag[word]+=1 for word in note: if word not in dict_mag or dict_mag[word]==0: print("No") return ; if word in dict_mag : dict_mag[word]..

PM, AM으로 표현된 시간을 24시간 표현법으로 바꾸는 문제다. String -> 숫자, 숫자 -> String으로 바꾸는것만 처리하면 어려울것은 딱히 없었다. 다만 01 시 일 경우 1시가 아닌 01시로 표현해야한다는 점만 주의하면 된다. * character 1을 숫자 1로 바꾸기 : s.charAt(0)-'0' * substring(f,t) : f은 포함, t는 미포함
import java.util.*; class Solution { public int solution(int N, int number) { int answer = 0; HashSet[] set = new HashSet[8]; int num=0; for (int i = 0 ;i < 8;i++){ num=1+10*num; set[i]=new HashSet(); set[i].add(num*N); } for(int to=1;to
def getParent(idx):#제일 부모를 반환 if idx==parent[idx]: return idx else :return getParent(parent[idx]) def union(f,s): f=getParent(f) s=getParent(s) if f 지금 연결하는 노드가 다른것과도 연결되어있을 수 있으므로, 지금 연결하려는 노드의 제일 상위 부모를 찾아 부모의 부모를 갱신해줘야함 2. 사이클이 있는지 확인할 때 : parent 배열(부모배열)만 조회하면 될 것이라고 생각했으나 ㄴㄴ -> 1번과정에 의해 갱신될 때 제일 상위의 부모의 부모만 바뀌게 되므로 사이에 있던 parent 배열만 보면 사이에있는 노드들은 부모의 부모가 생겼으나 그 사실을 모른채 자신의 부모를 parent 배열에 담고..

문제 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 제한 조건 number는 1자리 이상, 1,000,000자리 이하인 숫자입니다. k는 1 이상 number의 자릿수 미만인 자연수입니다. 입출력 예 numberkreturn 1924 2 94 1231234 3..