일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- spring webflux
- JobExecutionAlreadyRunningException
- nonblocking
- JSON 분리
- Meta Table
- spring reactive programming
- multi update
- org.json
- 스프링 리액티브 프로그래밍
- 스프링 배치 공식문서
- 스프링 웹플럭스
- 문자형을 날짜형으로
- git stage
- 마이바티스 트랜잭션
- batchInsert
- 스테이지에 올리기
- 성능개선
- date_format
- ChainedTransactionManager #분산데이터베이스 #Spring Boot #MyBatis
- 마리아디비
- str_to_date
- 무시하기
- jar 소스보기
- JSON 분할
- JSON 분해
- JSONObject 분할
- JSONArray 분할
- 폐기하기
- 스프링 배치 메타 테이블
- 날짜형을 문자형으로
- Today
- Total
목록ALGORITHM STUDY WITH PYTHON (71)
ebson
1. R, G, B 를 선택한 경우 N번 집까지 가는 최소값을 각각 dp[n][0], dp[n][1], dp[n][2] 으로 저장한다.2. dp[n-1][0], dp[n-1][1], dp[n-1][2] 중 최소값을 출력한다. import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int N; static int[][] dp; public static void main(String[] args) { try { BufferedReader br = new BufferedReader(new InputS..
1. 모든 좌표를 순회하면서 아래를 반복1.1. 방문체크하고 집의 개수를 1으로 초기화한 후에 dfs를 수행1.1.1. 상하좌우 좌표값 중 값이 '1'이고 방문하지 않았으면 방문체크하고 dfs를 호출, 전역변수 d값을 1증감1.1.2. dfs함수 밖에서 초기화했던 d를 반환1.2. d_list에 dfs수행 결과 전역변수 d를 추가1.3. 영역의 개수 cnt를 1 증감2. 영역의 개수 cnt를 출력하고 d_list를 오름차순으로 출력 import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;public class Main { static int N, d, cnt; static int[][] board; ..
1. 아래와 같이 bfs방식으로 거리값을 증감하면서 좌표를 탐색하고 목적지에 도착한 경우 최단거리값을 출력1.1. 출발지 좌표와 초기 거리값을 Queue에 추가1.2. Queue 가 빌 때까지 아래를 반복1.2.1. Queue.poll 하여 현재좌표와 거리값을 저장1.2.2. 현재 좌표가 목적지 좌표이면 거리값을 반환1.2.3. 상하좌우 좌표를 검사하면서 좌표값이 '1'이고 방문하지 않은 경우 방문체크하고 Queue 에 좌표, 현재거리+1을 add2. bfs함수 호출 결과를 출력 import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.Queue;import java.u..
1. 모든 팀 구성의 경우의 수에 대하여 능력치의 합을 구하고 최솟값 세팅2. 최솟값이 0으로 세팅되면 0을 반환3. 모든 능력치의 합의 경우의 수 중 최솟값을 출력 import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class B14889 { static int N = 0; static int minDiff = Integer.MAX_VALUE; static int[][] board; static boolean[] visited; public static void main(String[] args) { try{ Bu..
1. N 행 M 열의 체스판을 순회하면서 아래를 수행1.1. 0행 0열을 B로 시작하는 체스판으로 바꾸는 경우에 바꿔야 하는 칸의 개수를 카운트1.2. 0행 0열을 W로 시작하는 체스판으로 바꾸는 경우에 바꿔야 하는 칸의 개수를 카운트2. N 행 M 열의 체스판에서 8*8 크기의 체스판을 구하는 모든 경우에 아래를 수행2.1. 0행 0열을 B로 시작하는 경우, cntList 으로 8*8 크기의 체스판에서 바꿔야 하는 칸의 개수를 추가 2.1. 0행 0열을 W로 시작하는 경우, cntList 으로 8*8 크기의 체스판에서 바꿔야 하는 칸의 개수를 추가 3. 모든 바꿔야하는 칸의 개수의 경우의 수 중에서 최소값을 출력 import java.io.BufferedReader;import java.io.Inpu..
1. N 행 M 열의 체스판을 순회하면서 아래를 수행1.1. 0행 0열을 B로 시작하는 체스판으로 바꾸는 경우에 바꿔야 하는 칸의 개수를 카운트1.2. 0행 0열을 W로 시작하는 체스판으로 바꾸는 경우에 바꿔야 하는 칸의 개수를 카운트2. N 행 M 열의 체스판에서 8*8 크기의 체스판을 구하는 모든 경우에 아래를 수행2.1. 0행 0열을 B로 시작하는 경우, cntList 으로 8*8 크기의 체스판에서 바꿔야 하는 칸의 개수를 추가 2.1. 0행 0열을 W로 시작하는 경우, cntList 으로 8*8 크기의 체스판에서 바꿔야 하는 칸의 개수를 추가 3. cntList 에서 최소값을 출력 N, M = map(int, input().split())board = [input() for _ in range(..
1. dp를 목표금액 길이만큼 0으로 초기화 2. dp[0]을 1로 초기화 (코인 1개를 사용하는 경우) 3. coins를 순회하면서 아래를 반복 3.1. 현재 코인금액부터 목표금액까지 순회하면서 순회하는 인덱스(i) -현재코인금액(c)이 0이상이면, dp[i] += dp[i-c] 4. dp의 마지막 원소를 출력 N, K = map(int, input().split()) coins = [] for _ in range(N): coins.append(int(input())) dp = [0 for _ in range(K+1)] dp[0] = 1 for c in coins: for i in range(c, K+1): if i-c >= 0: dp[i] += dp[i-c] print(dp[K]) dp[n] 을 n금..
1. dp 배열을 스티커 리스트로 초기화 2. 1부터 스티커 리스트 길이만큼 순회하면서 아래를 반복 2.1. 1번째이면 대각선 방향의 0번째 스티커 값을 더하기 2.2. dp[0][i], dp[1][i]으로 각각 대각선 방향의 i-1, i-2번째 값 중 더 큰값을 더하기 3. dp에서 최대값을 출력 T = int(input()) for _ in range(T): N = int(input()) dp = [list(map(int, input().split())) for _ in range(2)] for i in range(1, N): if i == 1: dp[0][1] += dp[1][0] dp[1][1] += dp[0][0] else: dp[0][i] += max(dp[1][i-1], dp[1][i-2])..