일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 성능개선
- 스프링 웹플럭스
- org.json
- 폐기하기
- 날짜형을 문자형으로
- JobExecutionAlreadyRunningException
- JSON 분해
- 무시하기
- 스테이지에 올리기
- 스프링 배치 메타 테이블
- 마리아디비
- git stage
- nonblocking
- spring webflux
- 스프링 리액티브 프로그래밍
- 스프링 배치 공식문서
- Meta Table
- ChainedTransactionManager #분산데이터베이스 #Spring Boot #MyBatis
- 문자형을 날짜형으로
- batchInsert
- JSON 분할
- JSON 분리
- date_format
- jar 소스보기
- spring reactive programming
- multi update
- 마이바티스 트랜잭션
- JSONObject 분할
- str_to_date
- JSONArray 분할
- Today
- Total
목록전체 글 (197)
ebson
1. 첫번째 배열에서 가능한 모든 부분배열의 합을 N_sums 리스트에 저장한다. 2. 두번째 배열에서 가능한 모든 부분배열의 합을 M_sums 리스트에 저장한다. 3. 첫번째 배열의 모든 요소를 순회하면서 아래 3.1.-3.3 을 반복한다. 3.1. M_sums에서 bisect_right으로 T-첫번째 배열의 요소 값을 탐색한 인덱스를 r에 저장한다. 3.2. M_sums에서 bisect_left으로 T-첫번째 배열의 요소 값을 탐색한 인덱스를 l에 저장한다. 3.3. r-l을 cnt변수에 증감한다. 4. 모든 가능한 경우의 수 cnt를 출력한다. T = int(input()) N = int(input()) N_list = list(map(int, input().split())) M = int(inpu..
1. 주어진 중량값 중 최소, 최대값을 저장 2. 1번의 최소, 최대 중량값을 lo, hi에 저장하고 중간값을 mid에 저장한다. mid를 최소무게제한으로 하여 아래 이분탐색 3-5를 반복한다. 3. 최소무게제한을 통과하는 노드만 방문하도록 하여 시작점에서 끝점까지 이동가능한지 여부를 반환하는 bfs를 아래와 같이 실행한다. 3.1. 최소무게제한을 인자로 받고 deque에 시작점을 저장한다. 3.2. 방문체크배열을 노드개수 + 1개 만큼 False으로 초기화하고 시작점을 True로 갱신한다. 3.3. deque에 요소가 없을 때까지 아래를 반복한다. 3.3.1. deque에서 맨 왼쪽 요소를 꺼낸다. 3.3.2. 맨 왼쪽요소에서 갈 수 있는 노드와 그 중량값에 대해 만약 방문하지 않은 노드이고 중량값이 ..
1. lo를 0, hi를 기타 레슨 시간 목록 lectures의 총합으로 초기화한다. 2. 출력할 변수 ans에는 hi를 저장한다. 3. lo가 hi이하이면 아래 4-9를 반복한다. 4. mid에 (lo+hi)//2를 저장한다. 5. mid가 lectures 요소 중 최대값보다 작으면, lo를 mid+1으로 저장하고 다음 반복으로 넘어간다. 6. sub를 0, sub_cnt를 1으로 초기화하고 lectures를 순회하면서 아래 6.1-6.2를 반복한다. 6.1. sub에 lectures의 요소를 더한 값이 mid 이하이면 sub에 lectures의 요소를 더한다. 6.2. 만약 mid보다 크다면 sub_cnt에 1을 더하고 sub에는 lectures의 요소를 저장한다. 7. sub_cnt가 M(블루레이의..
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..