전체 κΈ€

μ•Œκ³ λ¦¬μ¦˜/BOJ

[BOJ] 2169 λ‘œλ΄‡ μ‘°μ’…ν•˜κΈ° - Java

✨ DP https://www.acmicpc.net/problem/2169 2169번: λ‘œλ΄‡ μ‘°μ’…ν•˜κΈ° 첫째 쀄에 N, M(1≀N, M≀1,000)이 주어진닀. λ‹€μŒ N개의 μ€„μ—λŠ” M개의 수둜 배열이 주어진닀. λ°°μ—΄μ˜ 각 μˆ˜λŠ” μ ˆλŒ“κ°’μ΄ 100을 λ„˜μ§€ μ•ŠλŠ” μ •μˆ˜μ΄λ‹€. 이 값은 κ·Έ μ§€μ—­μ˜ κ°€μΉ˜λ₯Ό λ‚˜νƒ€λ‚Έλ‹€. www.acmicpc.net πŸ“ κ³ λ €ν•΄μ•Όν•  사항 λ‘œλ΄‡μ€ 움직일 λ•Œ λ°°μ—΄μ—μ„œ μ™Όμͺ½, 였λ₯Έμͺ½, μ•„λž˜μͺ½μœΌλ‘œ 이동할 수 μžˆμ§€λ§Œ μœ„μͺ½μœΌλ‘œλŠ” 이동 X ν•œ 번 νƒμ‚¬ν•œ 지역은 μž¬νƒμ‚¬ X (1, 1)μ—μ„œ (N, M)κΉŒμ§€ 갈 λ•Œ νƒμ‚¬ν•œ μ§€μ—­λ“€μ˜ κ°€μΉ˜μ˜ μ΅œλŒ“κ°’ κ΅¬ν•˜κΈ° πŸ•ΉοΈ 풀이 방법 μš°μ„  0번째 행에 μžˆλŠ” 값듀은 μ™Όμͺ½μ—μ„œλΆ€ν„° μ΄λ™ν•˜λ©΄μ„œ 합쳐진 값을 κΈ°λ‘ν•œλ‹€. 이미 νƒμƒ‰ν•œ 길은 λ‹€μ‹œ λ°©λ¬Έν•  수 μ—†μœΌλ―€λ‘œ κ²½λ‘œκ°€ μ™Όμͺ½μœΌλ‘œλΆ€ν„° 이동..

μ•Œκ³ λ¦¬μ¦˜/CodeTree

[CodeTree] λ©”μ΄μ¦ˆ λŸ¬λ„ˆ - Java

✨ κ΅¬ν˜„ πŸ‘‰ 쑰건을 λ§Œμ‘±ν•˜λŠ” κ°€μž₯ μž‘μ€ 크기의 μ •μ‚¬κ°ν˜•μ„ μ°Ύκ³  μ‹œκ³„λ°©ν–₯으둜 90도 νšŒμ „ https://www.codetree.ai/training-field/frequent-problems/problems/maze-runner/description?page=1&pageSize=20 μ½”λ“œνŠΈλ¦¬ | μ½”λ”©ν…ŒμŠ€νŠΈ μ€€λΉ„λ₯Ό μœ„ν•œ μ•Œκ³ λ¦¬μ¦˜ 정석 κ΅­κ°€λŒ€ν‘œκ°€ λ§Œλ“  μ½”λ”© κ³΅λΆ€μ˜ κ°€μ΄λ“œλΆ μ½”λ”© μ™•μ΄ˆλ³΄λΆ€ν„° 꿈의 직μž₯ μ½”ν…Œ ν•©κ²©κΉŒμ§€, κ΅­κ°€λŒ€ν‘œκ°€ μ—„μ„ ν•œ 컀리큘럼으둜 μ€€λΉ„ν•΄λ³΄μ„Έμš”. www.codetree.ai πŸ“ κ³ λ €ν•΄μ•Όν•  점 μ°Έκ°€μžκ°€ ν˜„μž¬ μžˆλŠ” μΉΈ ~ μΆœκ΅¬κΉŒμ§€μ˜ 거리 < μ°Έκ°€μžκ°€ 이동할 μΉΈ ~ μΆœκ΅¬κΉŒμ§€μ˜ 거리 βž” 이동 X μΆœκ΅¬κΉŒμ§€μ˜ μ΅œλ‹¨κ±°λ¦¬κ°€ 더 κ°€κΉŒμ›Œμ•Ό 이동 κ°€λŠ₯ 움직일 수 μžˆλŠ” 칸이 2개 이상이라면 μƒν•˜λ‘œ μ›€μ§μ΄λŠ” 것을 μš°μ„ μ‹œ..

μ•Œκ³ λ¦¬μ¦˜/BOJ

[BOJ] 14503 λ‘œλ΄‡μ²­μ†ŒκΈ° - Java

✨ κ΅¬ν˜„ https://www.acmicpc.net/problem/14503 14503번: λ‘œλ΄‡ μ²­μ†ŒκΈ° 첫째 쀄에 방의 크기 $N$κ³Ό $M$이 μž…λ ₯λœλ‹€. $(3 \le N, M \le 50)$ λ‘˜μ§Έ 쀄에 μ²˜μŒμ— λ‘œλ΄‡ μ²­μ†ŒκΈ°κ°€ μžˆλŠ” 칸의 μ’Œν‘œ $(r, c)$와 μ²˜μŒμ— λ‘œλ΄‡ μ²­μ†ŒκΈ°κ°€ λ°”λΌλ³΄λŠ” λ°©ν–₯ $d$κ°€ μž…λ ₯λœλ‹€. $d$κ°€ $0$인 경우 뢁μͺ½ www.acmicpc.net πŸ“ κ³ λ €ν•΄μ•Όν•  점 μ£Όλ³€ λ™μ„œλ‚¨λΆ 4μΉΈ 쀑 μ²­μ†Œλ˜μ§€ μ•Šμ€ 빈 칸이 μ—†λŠ” 경우 즉, λͺ¨λ‘ μ²­μ†Œλ˜μ—ˆλ‹€λ©΄ λ°”λΌλ³΄λŠ” λ°©ν–₯을 μœ μ§€ν•˜κ³  ν•œ μΉΈ 후진 κ°€λŠ₯ν•˜λ©΄ ν›„μ§„ν•œλ‹€. λ¬Έμ œμ—μ„œ 0123 = λΆλ™λ‚¨μ„œλΌλŠ” 쑰건을 μ œμ‹œν–ˆλ‹€. 후진할 μ‹œ λ°©ν–₯이 λΆβž”λ‚¨, λ‚¨βž”λΆ / λ™βž”μ„œ, μ„œβž”λ™μœΌλ‘œ μ΄λ™ν•˜κΈ° λ•Œλ¬Έμ— ν˜„μž¬ λ°”λΌλ³΄λŠ” λ°©ν–₯이 0, 1(뢁, 동)이라면 +2λ₯Ό ν•΄μ€ŒμœΌ..

μ•Œκ³ λ¦¬μ¦˜/BOJ

[BOJ] 19238 μŠ€νƒ€νŠΈ νƒμ‹œ - Java

✨ κ΅¬ν˜„ & BFS(μ΅œλ‹¨κ±°λ¦¬) https://www.acmicpc.net/problem/19238 19238번: μŠ€νƒ€νŠΈ νƒμ‹œ 첫 쀄에 N, M, 그리고 초기 μ—°λ£Œμ˜ 양이 주어진닀. (2 ≀ N ≀ 20, 1 ≀ M ≀ N2, 1 ≀ 초기 μ—°λ£Œ ≀ 500,000) μ—°λ£ŒλŠ” λ¬΄ν•œνžˆ 많이 담을 수 있기 λ•Œλ¬Έμ—, 초기 μ—°λ£Œμ˜ 양을 λ„˜μ–΄μ„œ 좩전될 μˆ˜λ„ μžˆλ‹€. λ‹€ www.acmicpc.net πŸ“ κ³ λ €ν•΄μ•Όν•  점 νƒμ‹œμ˜ μœ„μΉ˜μ—μ„œλΆ€ν„° μŠΉκ°κΉŒμ§€μ˜ μ΅œλ‹¨κ±°λ¦¬λ₯Ό κ΅¬ν•œλ‹€. πŸ‘‰ μ‹œκ°„μ΄ˆκ³Ό 주의 ! μ΅œλ‹¨κ±°λ¦¬κ°€ λ™μΌν•œ μŠΉκ°λ“€μ΄ μ‘΄μž¬ν•  경우 κ·Έ 쀑 ν–‰ λ²ˆν˜Έκ°€ κ°€μž₯ μž‘μ€ μŠΉκ°μ„, 그런 μŠΉκ°λ„ μ—¬λŸ¬ λͺ…이라면 μ—΄ λ²ˆν˜Έκ°€ κ°€μž₯ μž‘μ€ μŠΉκ°μ—κ²Œ μ΄λ™ν•œλ‹€. πŸ‘‰ PriorityQueue ν™œμš© 벽에 μ˜ν•΄ μŠΉκ°μ—κ²Œ 가지 λͺ»ν•˜κ±°λ‚˜ λͺ©μ μ§€μ— 가지 λͺ»ν•˜λŠ” 상황 ..

Spring Framework/Spring & Spring Boot

[Spring] Spring Security @AuthenticationPrincipal

인증된 μ‚¬μš©μžμ˜ 정보λ₯Ό κ°€μ Έμ˜€λŠ” 방법은 λ‹€μ–‘ν•˜λ‹€. Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); String currentPrincipalName = authentication.getName(); UserDetails userDetails = (UserDetails) authentication.getPrincipal(); μ˜ˆμ „μ—λŠ” μœ„μ™€ 같은 μ½”λ“œλ₯Ό μ΄μš©ν•΄μ„œ μœ μ €λ₯Ό λΆˆλŸ¬μ™”λ‹€. SecurityContext에 인증된 Authentication 객체λ₯Ό 넣어두고 ν˜„μž¬ μŠ€λ ˆλ“œ λ‚΄μ—μ„œ κ³΅μœ λ˜μ–΄ 관리할 수 μžˆλ„λ‘ ν•˜λŠ” 것이닀. ν•˜μ§€λ§Œ μ΄λ ‡κ²Œ μ‚¬μš©ν•˜λ©΄ getName()만 λΆ€λ₯Ό μˆ˜λ°–μ— μ—†λ‹€. λ‹€λ₯Έ 방법은 또 μ—†λŠ”..

μ•Œκ³ λ¦¬μ¦˜/πŸ—‚οΈ 정리

😺 λ²”μœ„λ₯Ό λ²—μ–΄λ‚  경우 λ°˜λŒ€λ°©ν–₯으둜 μ΄λ™ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜ 😺

μ•Œκ³ λ¦¬μ¦˜μ„ ν’€λ©΄μ„œ 기얡해두면 μ’‹μ„λ§Œν•œ μ½”λ“œλ₯Ό κΈ°λ‘ν•œλ‹€. 😺 상황 μ„€λͺ… 고양이가 μƒν•˜μ’Œμš°λ‘œ L만큼 이동할 λ•Œ λ²”μœ„ λ°–μœΌλ‘œ μ΄λ™ν•œλ‹€λ©΄ 이동방ν–₯을 λ°˜λŒ€λ‘œ λ°”κΎΌ ν›„ 이동을 계속 μ§„ν–‰ν•œλ‹€. λ§Œμ•½ L의 값이 10얡일 λ•Œ for문을 10μ–΅ 번 돌렀 고양이가 μ΄λ™ν•˜κ²Œ λ˜λŠ” μœ„μΉ˜λ₯Ό μ •ν•˜λŠ” 것은 λΉ„νš¨μœ¨μ μ΄λ©° μ‹œκ°„μ΄ˆκ³Όκ°€ λ°œμƒν•œλ‹€. κ³ μ–‘μ΄μ˜ μœ„μΉ˜λ₯Ό 반볡문이 μ•„λ‹Œ 식을 μ΄μš©ν•΄μ„œ κ΅¬ν•΄λ³΄μž. πŸ•ΉοΈ κ΅¬ν˜„ 방법 πŸ”Ή 였λ₯Έμͺ½μœΌλ‘œ 이동할 λ•Œ 4x6의 νŒμ—μ„œ ν˜„μž¬ κ³ μ–‘μ΄λŠ” (2, 2)에 μœ„μΉ˜ν•΄ μžˆλ‹€. 고양이가 λ§Œμ•½ 3μΉΈ μ΄λ™ν•˜λ©΄ λ²”μœ„μ— λ²—μ–΄λ‚˜μ§€ μ•ŠλŠ”λ‹€. ν•˜μ§€λ§Œ 였λ₯Έμͺ½μœΌλ‘œ 7μΉΈ 이동할 λ•Œ λ²”μœ„λ₯Ό λ²—μ–΄λ‚˜κ²Œ λœλ‹€. λ‹€μŒ μ΄λ™ν•˜λ €λŠ” 칸이 λ²”μœ„μ— λ²—μ–΄λ‚œλ‹€λ©΄ λ°©ν–₯을 λ°˜λŒ€λ‘œ λ°”κΏ” μ΄λ™ν•˜κ³ , μ΅œμ’…μ μœΌλ‘œ (2, 1)에 μœ„μΉ˜ν•˜κ²Œ λœλ‹€. 12μΉΈ μ΄λ™ν•˜λ©΄ λ™μΌν•œ..

Spring Framework/JPA

[Spring/JPA] Open-in-view와 @Transactional

μŠ€ν”„λ§λΆ€νŠΈ ν”„λ‘œμ νŠΈλ₯Ό μ‹€ν–‰μ‹œν‚€λ©΄ μœ„μ™€ 같은 WARN이 ν‘œμ‹œλœλ‹€. spring.jpa.open-in-view의 기본값은 true이며 ν•΄λ‹Ήν•˜λŠ” WARN은 false κ°’μœΌλ‘œ 지정해주면 없어진닀. 배포용 μͺ½ yml νŒŒμΌμ— spring.jpa.open-in-viewλ₯Ό false둜 ν•΄μ£Όμ—ˆκ³ , 둜컬 μͺ½μ—λŠ” 별닀λ₯Έ 지정을 ν•˜μ§€ μ•Šκ³  λ°°ν¬ν–ˆλ”λ‹ˆ 배포 μ‚¬μ΄νŠΈμ—μ„œ κΈ€ 전체가 μ‘°νšŒλ˜μ§€ μ•ŠλŠ” 상황이 λ°œμƒν–ˆλ‹€. open-in-view:false λ₯Ό μ£Όμ„μ²˜λ¦¬ν•˜λ‹ˆ λ‹€ν–‰νžˆ κΈ€ 전체 μ‘°νšŒκ°€ μ •μƒμ μœΌλ‘œ μž‘λ™ν–ˆλ‹€. open-in-viewκ°€ λ¬΄μ—‡μ΄κΈΈλž˜ μ‘°νšŒμ— 영ν–₯을 λ―ΈμΉ˜λŠ”μ§€ μ•Œμ•„λ³΄κ² λ‹€! 더보기 μ˜ˆμ „μ— λ“€μ—ˆλ˜ κΉ€μ˜ν•œ κ°•μ‚¬λ‹˜μ˜ 'μ‹€μ „! μŠ€ν”„λ§λΆ€νŠΈμ™€ JPA ν™œμš©2 - API 개발 μ„±λŠ₯μ΅œμ ν™”' κ°•μ˜μ—μ„œ μ„Ήμ…˜5 API 개발 κ³ κΈ‰-싀무 ν•„μˆ˜ μ΅œμ ν™” -..

μ•Œκ³ λ¦¬μ¦˜/CodeTree

[CodeTree] λ£¨λŒν”„μ˜ λ°˜λž€ - Java

✨ κ΅¬ν˜„ ➑︎ μ—°μ‡„μ μœΌλ‘œ μ΄λ™μ‹œν‚€κΈ° & μ΄λ™ν•œ μ’Œν‘œ κ°±μ‹ ν•˜κ³  잘 λ°˜μ˜μ‹œν‚€κΈ° https://www.codetree.ai/training-field/frequent-problems/problems/rudolph-rebellion/description?page=1&pageSize=20 μ½”λ“œνŠΈλ¦¬ | μ½”λ”©ν…ŒμŠ€νŠΈ μ€€λΉ„λ₯Ό μœ„ν•œ μ•Œκ³ λ¦¬μ¦˜ 정석 κ΅­κ°€λŒ€ν‘œκ°€ λ§Œλ“  μ½”λ”© κ³΅λΆ€μ˜ κ°€μ΄λ“œλΆ μ½”λ”© μ™•μ΄ˆλ³΄λΆ€ν„° 꿈의 직μž₯ μ½”ν…Œ ν•©κ²©κΉŒμ§€, κ΅­κ°€λŒ€ν‘œκ°€ μ—„μ„ ν•œ 컀리큘럼으둜 μ€€λΉ„ν•΄λ³΄μ„Έμš”. www.codetree.ai πŸ“κ³ λ €ν•΄μ•Όν•  점 산타가 κ°€κΉŒμš΄ λ£¨λŒν”„μ—κ²Œ 이동할 λ•Œ, λ°˜λŒ€λ‘œ λ£¨λŒν”„κ°€ κ°€κΉŒμš΄ μ‚°νƒ€μ—κ²Œ 이동할 λ•Œ μ–΄λŠ λ°©ν–₯으둜 이동할지 κ²°μ •ν•˜κΈ° μœ„ν•΄μ„œλŠ” 거리 곡식 계산을 μ΄μš©ν•΄μ„œ 비ꡐ해야 ν•œλ‹€. πŸ‘‰ λ£¨λŒν”„μ˜ 경우 8λ°©ν–₯ 이동 κ°€λŠ₯ν•˜κ³ , μ‚°νƒ€λŠ”..

soogoori
πŸƒπŸ»‍β™€οΈμŠ€ν…λ°”μ΄μŠ€ν…