μ 체 κΈ
![[Trouble Shooting] Swagger-uiλ₯Ό μ μνμ λ 404 errorκ° λλ κ²½μ°](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNspwr%2Fbtsq1I8b7sT%2FRZCB7FgFgJJRPIjBTHt6p1%2Fimg.png)
[Trouble Shooting] Swagger-uiλ₯Ό μ μνμ λ 404 errorκ° λλ κ²½μ°
μ΄μ νλ‘μ νΈμμ Swaggerλ₯Ό μ¬μ©ν΄ κ°μ μ€μ μΌλ‘ Swaggerλ₯Ό Config νμΌλ, λ‘컬μμ ν΄λΉ URLλ‘ μ μνμ λ 404 Errorκ° λμ€λ νμμ λ°κ²¬νλ€. λ¬Έμ μ μμΈμ λ¬λΌμ§ μ€νλ§ λΆνΈμ λ²μ μΌλ‘, μ΄μ μλ 2λ²μ μ μ¬μ©νλ€λ©΄ μ§κΈμ 3λ²μ μ μ ννκΈ° λλ¬Έμ λ°μν μ€λ₯λ€. ν΄κ²°μ± μ μ°Ύμκ³³μ Stack Overflowμλ€. https://stackoverflow.com/questions/74614369/how-to-run-swagger-3-on-spring-boot-3 How to run Swagger 3 on Spring Boot 3 Using a fresh Spring Initialzr with Java17 and Spring Boot 3.0.0, and an extra addi..
![[νλ‘κ·Έλλ¨Έμ€] μ
κ΅μ¬μ¬ (level3, python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4WSGO%2FbtsagOXsRNk%2FkhWEZ975qFSLUnoQ9A2pRK%2Fimg.png)
[νλ‘κ·Έλλ¨Έμ€] μ κ΅μ¬μ¬ (level3, python)
π€ νμ΄ μ½λ def check(n, times, k): can_enter = 0 for t in times: can_enter += k // t return True if can_enter >= n else False def solution(n, times): answer = 0 start = 0 end = min(times) * n mid = start while mid + 1 != end: mid = (start + end) // 2 if check(n, times, mid): end = mid else: start = mid return end π€ λ¬Έμ νμ΄ μ΄λΆνμμΌλ‘ νμ΄ν΄μΌ νλ λ¬Έμ μ λλ€. νμ μ΄λΆ νμμ μμμ κ³Ό λμ μ μ‘λ κΈ°μ€κ³Ό, μ΄λ€ κ²μ μ΄λΆνμμ μ¬μ©ν΄μΌ ν μ§ νλ¨νλκ² μ΄λ ΅λ€..
![[DEVLOG] @Builderμ @Builder.Default](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGqdFq%2Fbtr9Ga1zLcE%2FJJbZyAu4SwgMLTBJjy88W0%2Fimg.png)
[DEVLOG] @Builderμ @Builder.Default
π€ @Builderκ° λ¬λ €μλ ν΄λμ€μ νλλ₯Ό μ΄κΈ°νν΄μ€¬λλ°, μ λΉλ ν¨ν΄μ μ¬μ©νλ©΄ μ΄κΈ°ν κ°μ΄ μλ Nullμ΄ λμ€μ§? πͺ GTAccountInfo μν°ν°μ μ½λ μΌλΆ @Slf4j @Builder @NoArgsConstructor @AllArgsConstructor @Entity(name = "gt_account_info") public class GTAccountInfo { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ACCOUNT_ID") private long id; @Getter @Column(name = "account_email") private String accountEmail; @Getter @Col..
![[DEVLOG] JUnit5λ₯Ό νμ©ν ν
μ€νΈ μ½λ μμ±κ³Ό @DataJpaTest μ¬μ©μ λ°μν λ¬Έμ ν΄κ²°](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkzE74%2Fbtr9PeOYIxs%2FuaoGrJnBeeY4ifhiMarAz1%2Fimg.png)
[DEVLOG] JUnit5λ₯Ό νμ©ν ν μ€νΈ μ½λ μμ±κ³Ό @DataJpaTest μ¬μ©μ λ°μν λ¬Έμ ν΄κ²°
π€ Spring Data JPAλ₯Ό μ¬μ©νλ©΄μ JPA κ΄λ ¨ ν μ€νΈλ§ μ§ννκ³ μΆμ λ λͺ¨λ λΉμ λ±λ‘νλ @SpringBootTest μ΄λ Έν μ΄μ μ μ¬μ©νλ©΄ μ ν리μΌμ΄μ μ κ·λͺ¨κ° μ»€μ§ μλ‘ μλκ° λλ €μ§λλ€. νμ§λ§, JPA κ΄λ ¨ ν μ€νΈλ§ μ§ννκ³ μΆμ κ²½μ°κ° λΆλͺ νκ² μ‘΄μ¬ν©λλ€. μ΄μ κ°μ κ²½μ°μλ, @DataJpaTest μ΄λ Έν μ΄μ μ μ¬μ©ν©λλ€. @DataJpaTest class GTMemberEntityTest{ @Autowired private GTAccountInfoRepository accountInfoRepository; @Autowired private GTMemberInfoRepository memberInfoRepository; @Autowired private GTAccountUserRo..
![[νλ‘κ·Έλλ¨Έμ€] 거리λκΈ° νμΈνκΈ° (level2, python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDLnAc%2Fbtr9AjCULAI%2FMHcvr5HG7OuS4ugay4p9TK%2Fimg.png)
[νλ‘κ·Έλλ¨Έμ€] 거리λκΈ° νμΈνκΈ° (level2, python)
π€ νμ΄ μ½λ from collections import deque def bfs(start, place): queue = deque() queue.append([start[0], start[1], 0]) visited = [[False for _ in range(5)] for _ in range(5)] visited[start[0]][start[1]] = True dx = [0, 0, -1, 1] dy = [1, -1, 0, 0] candidate = [] while queue: a, b, dist = queue.popleft() for i in range(4): nx = dx[i] + a ny = dy[i] + b if 0
![[νλ‘κ·Έλλ¨Έμ€] λ©μ©‘ν μ¬κ°ν (level2, python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoHBmr%2Fbtr9nJ31IVu%2Fgfwkv7hKAzoSFkBnmUokoK%2Fimg.png)
[νλ‘κ·Έλλ¨Έμ€] λ©μ©‘ν μ¬κ°ν (level2, python)
π€ νμ΄ μ½λ import math def solution(w,h): return w * h - (w + h - math.gcd(w, h)) π€ λ¬Έμ νμ΄ μ½λκ° μ§§μμ μ¬μ΄ λ¬Έμ μ²λΌ 보μ΄μ§λ§, μ μ λ° μμ΄ λμλμ§ μ΄ν΄νλ κ²μ΄ μ€μν©λλ€. λ¬Έμ μμ λμ¨ μ΄ μμλ₯Ό ν λ² λ΄ μλ€. κ°λ‘ 8, μΈλ‘ 12μ μ¬κ°νμΌλ‘, μΌμ ν ν¨ν΄μ΄ λ°λ³΅λλ κ²μ²λΌ 보μ λλ€. μμ κ°μ κ°λ‘ 2, μΈλ‘ 3μ μ¬κ°νμ ν¨ν΄μ΄ μ¬λ¬ λ² λ°λ³΅λλ κ²μ²λΌ 보μ΄μ£ . κ³μ°νλ©΄, κ°λ‘ 8 μΈλ‘ 12μ μ¬κ°νμ, κ°λ‘ 2, μΈλ‘ 3μ μ¬κ°νμμ μ μ 걸리λ μ¬κ°νμ κ°μ * 4μ λλ€. μ¬κΈ°μ 4λΌλ μ«μλ, 8κ³Ό 12μ μ΅λ 곡μ½μμΈκ²μ μ μ μμ΅λλ€. λν κ°λ‘ 2μ μΈλ‘ 3μ μλ‘μ κ΄κ³μμ μ μ μμ£ . λ°λΌμ μ΅λ 곡μ½μλ₯Ό ..
![[νλ‘κ·Έλλ¨Έμ€] μ¬νκ²½λ‘ (level3, python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FssoPO%2Fbtr9pcYfTE6%2Fe1gyqzjhyMlBVd92vHgcR0%2Fimg.png)
[νλ‘κ·Έλλ¨Έμ€] μ¬νκ²½λ‘ (level3, python)
π€ νμ΄ μ½λ from collections import deque import copy def bfs(start, ways, visited, n): queue = deque() queue.append([start, start, visited]) candidate = [] while queue: now, log, visit = queue.popleft() if len(log) == 4 * n - 1: candidate.append(log) continue for next in ways[now]: visited_key = now + next if visit[visited_key] != 0: visit[visited_key] -= 1 queue.append([next, log + " " + next, cop..
![[νλ‘κ·Έλλ¨Έμ€] λμ€ν¬ 컨νΈλ‘€λ¬ (level3, python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzjP0F%2Fbtr9nIh3XlN%2FepnHZYZXLJq8i0m2RMqGQ0%2Fimg.png)
[νλ‘κ·Έλλ¨Έμ€] λμ€ν¬ 컨νΈλ‘€λ¬ (level3, python)
π€ νμ΄ μ½λ import heapq from collections import deque def solution(jobs): # jobs : [μμ μ΄ μμ²λλ μμ , μμ μ μμμκ°] answer = [] job_queue = deque(sorted(jobs, key=lambda x : x[0])) heap = [] time = 0 while job_queue or heap: # μμ νμμ μ€νκ°λ₯ν νμΌλ‘ μ΄λ while job_queue and job_queue[0][0]