일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링 배치 메타 테이블
- 스테이지에 올리기
- nonblocking
- date_format
- jar 소스보기
- 문자형을 날짜형으로
- Meta Table
- JSON 분할
- 스프링 리액티브 프로그래밍
- ChainedTransactionManager #분산데이터베이스 #Spring Boot #MyBatis
- 마리아디비
- 날짜형을 문자형으로
- git stage
- 스프링 웹플럭스
- JobExecutionAlreadyRunningException
- 성능개선
- org.json
- JSON 분해
- multi update
- spring reactive programming
- 마이바티스 트랜잭션
- 스프링 배치 공식문서
- JSON 분리
- spring webflux
- 무시하기
- batchInsert
- JSONArray 분할
- 폐기하기
- JSONObject 분할
- str_to_date
- Today
- Total
목록ALGORITHM STUDY WITH PYTHON (71)
ebson
1. 서류 성적 순위를 기준으로 순위 목록을 오름차순 정렬 2. cur 변수에 정렬한 순위목록의 첫번째 요소의 면접 성적 순위를 저장 3. 1 부터 성적 목록의 마지막 인덱스까지 순회하면서 아래를 반복 3.1. cur보다 순회중인 인덱스의 면접 성적 순위가 높으면(작으면) cur에 해당 면접 성적 순위를 저장하고 카운트를 1 증감 4. 카운트를 출력 import sys input = sys.stdin.readline T = int(input()) for _ in range(T): N = int(input()) ranks = [list(map(int, input().split())) for _ in range(N)] ranks = sorted(ranks, key = lambda x : x[0]) cur =..
이전의 비교횟수 목록과 남아있는 카드개수 목록 중 매번 최소값을 선택할 수 있어야 한다. 1. heapq를 import 2. N개의 card를 cards 배열에 모두 저장 3. cards 의 요소가 2개 이상이라면, cards에 요소가 하나만 남을 때가지 아래를 반복 3.1. heapq.heappop을 사용해 최소값을 두번 꺼내기 3.2. tot 변수에 두 최소값의 합을 더하기 3.3. cards에 두 최소값의 합을 heapq.heappush 하기 4. tot 변수 값을 출력 import heapq N = int(input()) cards = [] for _ in range(N): heapq.heappush(cards, int(input())) tot = 0 if N > 1: while len(cards..
1. 종료시간 기준 정렬 2. 시작시간 기준 정렬 3. 정렬한 시간목록을 순회하면서 시작시간 >= 종료시간인 경우에만 cnt를 1 증감 4. cnt 출력 N = int(input()) times = [list(map(int, input().split())) for _ in range(N)] times = sorted(times, key=lambda x : (x[1], x[0])) last_e = 0 cnt = 0 for [s, e] in times: if s >= last_e: cnt += 1 last_e = e print(cnt) 참고출처 "[백준알고리즘] 1931번: 회의실배정 -Python", suri78.tistory.com, 2019년 8월 30일 수정, 2023년 6월 14일 접속, https..
1. 첫번째 선거구의 조합을 모두 추출하고 아래를 반복 1.1. 첫번째 선거구의 조합과 그 외 나머지 선거구의 조합을 bfs, dfs 방식 중 하나로 순회해 가능한 조합인지 검사 1.2. 가능한 조합이라면 두 선거구의 인구수 차를 저장 2. 두 선거구의 인구수 차 중 최소값을 출력, 가능한 조합이 없으면 -1을 출력 N = int(input()) nums = [0] + list(map(int, input().split())) adj = [0] + [] for _ in range(N): adj.append(list(map(int, input().split()))[1:]) from collections import deque def bfs(nodes): dq = deque() dq.append(nodes[0..
dfs 방식으로 풀이 시도한 결과 테스트 케이스는 통과했지만 제출시 시간 초과 또는 메모리 초과가 발생했다. dfs 풀이(시간초과) N, M = map(int, input().split()) graph = [list(map(int, input().split())) for _ in range(N)] visited = [[False]*M for _ in range(N)] dy = (1, -1, 0, 0) dx = (0, 0, 1, -1) from collections import deque def bfs(y, x): dq = deque() dq.append((y, x)) while dq: (y, x) = dq.popleft() graph[y][x] = -2 for i in range(4): ny = y + ..
dfs으로 풀이 시도했으나 시간초과 났고, 시간초과가 나지 않더라도 테스트 케이스 범위로 인해 순환함수 호출 최대 제한에 걸릴 수 밖에 없다. bfs 방식으로 탐색하고 PyPy3으로 제출해야 한다. 시간초과난 dfs 풀이 import sys sys.setrecursionlimit(10 ** 6) input = sys.stdin.readline N, M = map(int, input().split()) graph = [[] for _ in range(N+1)] for i in range(M): (e, s) = map(int, input().split()) graph[s].append(e) def dfs(node): global cnt for nxt in graph[node]: if not visited[n..
1. 도화지의 모든 좌표를 순회하면서 아래를 반복 1.1. 체크되지 않은 좌표이고 좌표 값이 1이면, 합계 리스트에 해당 좌표를 인자로 아래와 같이 bfs한 결과를 저장 1.1.1. deque에 인자로 받은 좌표값을 저장 1.1.2. tot을 1로 초기화 1.1.3. 체크배열의 해당 좌표값을 1로 갱신 1.1.4. dq가 빌 때까지 반복 1.1.4.1. 상하좌우 좌표에 대해 도화지에 존재하는 좌표이고, 좌표값이 1이고, 체크배열의 값이 0이면, dq에 추가하고 chk배열의 값을 1로 갱신하고 tot을 1 증감 1.1.5. tot 값을 반환 2. tot_list의 길이를 출력 3. tot_list의 길이가 0보다 크면 최대값을 출력하고 0이면 0을 출력 N, M = map(int, input().split..
1. dp 배열을 대나무숲 그래프의 크기만큼의 -1으로 초기화 2. dfs 함수를 다음과 같이 정의 2.1. y, x좌표를 인자로 받고 dp[y][x]값이 -1이면 0으로 갱신 후 아래를 수행 2.1.1. 상하좌우 좌표에 대해 유효한 좌표인지 검사하고 현재 좌표값보다 더 큰 값이면 dp[y][x]에서 dfs[ny][nx]값과 dp[y][x]값 중 더 큰값으로 갱신 2.2. dp[y][x]+1한 값을 반환 3. 대나무숲의 모든 좌표를 순회하면서 dfs(y, x)한 값의 최대값을 저장하고 출력 N = int(input()) graph = [list(map(int, input().split())) for _ in range(N)] dy = (-1, 1, 0, 0) dx = (0, 0, -1, 1) import..