일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- executioncontext 변수 공유
- 아이템 리더 커스텀
- JSONObject 분할
- 아이템 리더 페이징 처리
- aop proxy
- spring batch 변수 공유
- api 아이템 리더
- JSONArray 분할
- stepexecutionlistener
- JSON 분리
- JSON 분할
- 읽기 작업과 쓰기 작업 분리
- flatfileitemwriter
- mybatis
- job parameter
- 스프링배치 csv
- 선언적 트랜잭션 관리
- 트랜잭션 분리
- step 사이 변수 공유
- step 값 공유
- 스프링 배치 5
- 스프링배치 메타테이블
- Spring Batch
- 스프링 트랜잭션 관리
- 마이바티스 트랜잭션
- abstractpagingitemreader
- step 여러개
- 스프링배치 엑셀
- executioncontext
- spring batch 5
- Today
- Total
목록ALGORITHM STUDY WITH PYTHON (71)
ebson
1. lo를 0, hi를 k으로 초기화한다. 2. lo가 hi보다 작거나 같으면 아래 3-6을 반복한다. 3. mid 를 (lo+hi)//2 으로 초기화한다. 4. 1부터 N까지 반복하면서 mid//i와 N중 작은 값을 cnt에 더하기함으로서 mid보다 작거나 같은 수의 개수를 구한다. 5. mid보다 작거나 같은 수의 개수 cnt가 k와 같거나 더 크면, hi를 mid-1으로 갱신하고 ans변수에 mid를 저장한다. 6. cnt가 k보다 작으면, lo를 mid+1으로 갱신한다. 7. ans를 출력한다. N = int(input()) k = int(input()) lo = 0 hi = k while lo = k: hi = mid-1 ans = mid else: lo = mid+1 print(ans) 모든..
1. p1, p2에 각각 0과 정수 배열의 길이-1을 저장한다. 2. ans 변수에 정수배열에서 p1, p2 인덱스의 두 값을 저장한다. 3. 정수배열의 p1, p2 인덱스의 두 값을 더한 값을 tot 변수에 저장한다. 4. tot의 절댓값을 min_tot에 저장한다. 5. p1 이 p2보다 작으면 아래 6-10을 반복한다. 6. 정수배열의 p1, p2 인덱스의 두 값을 더한 값의 절댓값이 min_tot보다 작으면 ans의 0, 1번 인덱스의 값을 정수배열의 p1, p2인덱스의 값으로 갱신한다. 7. min_tot 값을 저장한다. 8. tot 값을 저장한다. 9. tot 값이 음수이면 p1을 1 증감하고 tot 값이 양수이면 p2값을 1 감소한다. 10. tot 값이 0이면 반복문을 빠져나온다. 11. ..
1. LIS(Longest Increasing Subsequence) 배열에 원본 수 배열 A의 첫번째 요소를 추가한다. 2. 원본 수 배열 A를 마지막 요소까지 순회하면서 아래 3-4를 반복한다. 3. LIS의 마지막으로 추가된 요소보다 원본 수 배열 A의 요소 a가 더 크면 LIS에 추가한다. 4. LIS의 마지막으로 추가된 요소보다 원본 수 배열 A의 요소 a가 더 작거나 같으면 LIS에서 왼쪽부터 순회하면서 a와 같거나 더 큰 숫자가 있는 첫번째 index에 a를 저장한다 5. LIS의 길이를 출력한다 N = int(input()) A = list(map(int, input().split())) LIS = [] LIS.append(A[0]) from bisect import bisect_left ..
1. 집 좌표 리스트를 정렬한다. 2. 집들에 대한 최소거리(1), 최대거리(첫번째 집에서 마지막집까지 거리) 를 구한다. 3. 최소 거리가 최대거리보다 작거나 같으면 아래 4-7을 반복한다. 4. 최소 거리와 최대 거리의 중간값을 계산하고 첫번째 집에 공유기를 설치한다. 5. 집 좌표 목록을 순회하면서 현재 공유기 설치한 집 + 중간값 이상의 좌표에 있으면 공유기를 설치하고 카운트를 1 증감한다. 6. 공유기 개수 이상으로 설치되었으면 거리를 넓힌다. (최소거리 = 중간값+1) result에 중간값를 저장한다. 7. 공유기 개수보다 적게 설치되었으면 거리를 좁힌다. (최대거리 = 중간값-1) 8. result를 출력한다. N, C = map(int, input().split()) homes = [int..
1. 강의시간 리스트 정렬 2. heapq에 가장 먼저 시작하는 강의의 종료시간 저장 3. 강의시간 리스트를 모두 순회 3.1. 강의시간 리스트 요소의 강의 시작시간이 heapq에 저장된 최소 종료시간보다 이르면 강의시간 리스트 요소의 강의 종료시간을 heapq에 저장 3.2. 강의시간 리스트 요소의 강의 시작시간이 heapq에 저장된 최소 종료시간보다 이르지 않으면 heapq에서 최소 종료시간을 heappop하고 강의시간 리스트 요소의 강의 종료시간을 heappush 4. heapq의 길이를 출력 import sys input = sys.stdin.readline N = int(input()) times = [list(map(int, input().split())) for _ in range(N)] t..
1. 0인 경우 0의 개수를 카운트 2. 1인 경우 출력 tot 값을 1 증감 3. 양수인 경우 양수 최대힙에 추가 4. 음수인 경우 음수 최소힙에 추가 5. 양수 최대힙의 길이가 1 이하일때 까지, heappop한 두 수를 곱해서 출력 tot 값에 추가 6. 양수 최대힙에 양수가 남은 경우 출력 tot 값에 추가 7. 음수 최소힙의 길이가 1 이하일 때까지, heappop한 두 수를 곱해서 출력 tot 값에 추가 8. 음수 최소힙에 음수가 남은 경우 , 0의 개수를 카운트하고 8.1. 0이 1개라도 있으면 출력 tot값에 0을 추가하고 8.2. 0이 1개도 없으면 음수를 출력 tot 값에 추가 9. tot 값을 출력 N = int(input()) import heapq as hq nums1 = [] #..
오답풀이 - 제시된 2개 테스트 케이스는 통과했으나 제출시 시간초과했다. import sys input = sys.stdin.readline N, K = map(int, input().split()) items = [] for _ in range(N): items.append(list(map(int, input().split()))) from collections import deque bags = deque() for _ in range(K): bags.append(int(input())) items = sorted(items, key = lambda x:x[1], reverse=True) tot = 0 for item in items: # av_bags = sorted(list(filter(lambd..
오답풀이 - 제시된 4개 테스트 케이스는 통과했으나 제출시 틀린 케이스가 있었다. N = int(input()) words = [input() for _ in range(N)] words = sorted(words, key=lambda x: len(str(x)), reverse=True) matches = [0 for _ in range(10)] pointers = [] import heapq for i in range(len(words)): heapq.heappush(pointers, (-len(words[i]), i, -len(words[i]))) mIdx = 9 while mIdx >= 0: (pointer, wIdx, len) = heapq.heappop(pointers) (pointer, wId..