일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- springboot
- java 기술면접
- 백준 16236
- with recursive
- 백준 파이썬
- re.split
- Spring Boot
- 웹어플리케이션 서버
- Coroutine
- Kotlin
- Spring
- 프로래머스
- MySQL
- spring oauth
- spring security
- 백준 17626
- 프로그래머스
- JPA
- spring cloud
- java
- 백준 15685
- sql 기술면접
- 백준 17779
- 파이썬
- 백준
- 백준 19238
- 백준 16719
- 백준 16235
- MSA
- JVM
- Today
- Total
목록전체 글 (287)
시작이 반

dp[] 리스트의 크기를 n+1개 만들고 10^6으로 초기화 한다. dp[n] 부터 시작한다. dp[10] : 시작 연산 횟수는 0으로 초기화 이제 갈수 있는 정수가 3가지 있다. 1. 3으로 나누어 떨어지면, 3으로 나눈값 2. 2로 나누어 떨어지면, 2로 나눈값 3. 1을 뺀값 10에서는 9, 5 로 갈 수 있다. 연산된 값에 있는 숫자와 (처음 나온 숫자면 10^6이 있을 것이고, 이전에 연산된 숫자면 연산 횟수가 있을 것이다) 이전 연산횟수 +1 중 작은 값을 저장한다. x = int(input()) dp = [1e6] * (x + 1) dp[x] = 0 def make_one(): for i in range(x, 0, -1): if i % 2 == 0: dp[i // 2] = min(dp[i] ..

현재 계단으로 온 경우는 2가지이다. 1. 1단계전 계단에서 온경우 2. 2단계전 계단에서 온경우 1번일 경우 연속으로 계단을 올라갈 수 없으므로 이전에 2단계전 계단에서 올라온 경우에 현재 계단의 비용을 더한다. 2번일 경우 2단계전 계단에서 온경우의 최대값과 현재 계단의 비용을 더한다. cost[0][0]. cost[0][1] 은 0단계 임으로 0이다 i, j 0 : 연속으로 계단을 1칸씩 올라온경우 ex) 1->2 1 : 2단계씩 계단을 오른 경우 1 cost[1] cost[1] 2 dp[1][1] + cost[2] max(dp[0][0], dp[0][1]) + cost[2] 3 dp[2][1] + cost[3] max(dp[1][0], dp[1][1]) + cost[3] 4 dp[3][1] + c..

트리형태.. 이런형태의 리스트로 만들 수 있다. triangle[i][j] j i 0 1 2 3 4 0 7 1 3 8 2 8 1 0 3 2 7 4 4 4 4 5 2 6 5 dp[i][j] j i 0 1 2 3 4 0 triangle[i][j] 1 dp[i-1][ j ] + triangle[ i ][ j ] dp[i-1][ j ] + triangle[ i ][ j ] 2 dp[i-1][ j ] + triangle[ i ][ j ] MAX(dp[i-1][j-1], dp[i-1][ j ]) + triangle[ i ][ j ] dp[i-1][ j ] + triangle[ i ][ j ] 3 dp[i-1][ j ] + triangle[ i ][ j ] MAX(dp[i-1][j-1], dp[i-1][ j ]) +..
커맨드 객체 커맨드 객체(Command Object) 란 HttpServletRequest 를 통해 들어온 요청 파라미터들을 setter 메서드를 이용하여 객체에 정의되어있는 속성에 바인딩이 되는 객체를 의미 커맨드 객체는 보통 VO 나 DTO 를 의미하며, HttpServletRequest 로 받아오는 요청 파라미터의 key 값과 동일한 이름의 속성들과 setter 메서드를 가지고 있어야 합니다. @Getter @Setter public class User { private String userName; private String phone; private int age; } @PostMapping("/test") public String ins(User user, Model model) { Strin..

현재 선택한 색에 따라 나뉘어 지는 경우의 수가 2가지씩 존재한다. 마찬가지로 다음 상태는 이전상태에서 올 수 있는 경우의 수가 2가지 존재한다. 때문에 다음 상태는 이전 상태(2가지)중 작은 값을 찾아서 더해주면 된다. -> 2차원 배열로 dp를 만들어준다. 첫번째 행은 첫번째 집들의 비용을 넣으면 된다. import copy n = int(input()) cost = [list(map(int, input().split())) for _ in range(n)] dp = [[10001] * 3 for _ in range(n)] def RGB(): for i in range(n): for j in range(3): if i == 0: dp[i][j] = cost[i][j] else: if j == 0: d..

삼각형을 계속 이어나가면서 규칙을 찾는 문제이다. 내가 구한 점화식은 f(1) = 1 f(2) = 1 f(3) = 1 f(4) = f(3) + f(1) f(5) = f(4) f(6) = f(5) + f(1) f(7) = f(6) + f(2) f(8) = f(7) + f(3) f(5)부터 규칙을 찾을 수 있었다.. t = int(input()) def padovan(n): dp = [-1] * n for i in range(n): if i < 3: dp[i] = 1 elif i == 3: dp[i] = dp[i-1] + dp[i-2] else: if i-5 < 0: dp[i] = dp[i-1] else: dp[i] = dp[i-1] + dp[i-5] return dp[n-1] for _ in range(t..

JAP Paging DB에 저장된 데이터들을 페이지에 맞춰서 몇개씩 뿌릴건지 알려주는것. DB에 저장된 데이터가 30개라고 한다면 프론트에서 1페이지, 5개 라고 요청을 한다. 그러면 백엔드에서 전체 DB에서 데이터를 앞에서부터 5개씩 분류하여 해당 페이지에 맞는 데이터를 넘겨준다. 사용법 Pageable을 사용하거나 PageRequest를 사용한다. 여기선 Pageable을 사용하였음 Controller @GetMapping("/list") @ResponseBody public List GetBookList(Pageable pageable){ return bookDBService.FindBooksBypageRequest(pageable); } Service public List FindBooksBypa..

금방 풀릴줄 알았지만 엄청 오래 걸렸다...(항상 이런듯) 처음에 집위치에서 상하좌우 모든 곳을 재귀를 돌려서 체력을 계산하면서 민트 초코가 있는곳 까지 가고 집에 도달하면 return 을 하는 식으로 하였지만 시간 초과가 떴다... 생각해보니 모든 경로를 탐색하기 때문에 갔던곳을 또간다. 이 사실을 알지만 처음 푼 방법에서 어떻게 고쳐야 할지 모르겠어서 다 지우고 처음부터 다시 풀기로 하였다. 첫풀이 n, hp, hp_puls = map(int, input().split()) graph = [list(map(int, input().split())) for _ in range(n)] vistied = [[False] * n for _ in range(n)] dx = [-1, 1, 0, 0] dy = [0..