soogoori

์•Œ๊ณ ๋ฆฌ์ฆ˜/BOJ

[BOJ] 1238 ํŒŒํ‹ฐ - Java

โœจ ๊ทธ๋ž˜ํ”„ ๐Ÿ‘‰ ๋‹ค์ต์ŠคํŠธ๋ผ (์ตœ๋‹จ๊ฒฝ๋กœ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜) https://www.acmicpc.net/problem/1238 1238๋ฒˆ: ํŒŒํ‹ฐ ์ฒซ์งธ ์ค„์— N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X๊ฐ€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ž…๋ ฅ๋œ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ M+1๋ฒˆ์งธ ์ค„๊นŒ์ง€ i๋ฒˆ์งธ ๋„๋กœ์˜ ์‹œ์ž‘์ , ๋์ , ๊ทธ๋ฆฌ๊ณ  ์ด ๋„๋กœ๋ฅผ ์ง€๋‚˜๋Š”๋ฐ ํ•„์š”ํ•œ ์†Œ์š”์‹œ๊ฐ„ Ti๊ฐ€ ๋“ค์–ด www.acmicpc.net ๐Ÿ“ ๊ณ ๋ คํ•ด์•ผํ•  ์  ๊ฐ ํ•™์ƒ๋“ค์˜ ์ง‘์—์„œ ํŒŒํ‹ฐ ์žฅ์†Œ๊นŒ์ง€ ์˜ค๊ณ  ๊ฐ€๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์ตœ๋‹จ ์‹œ๊ฐ„ ๊ตฌํ•˜๊ธฐ ๋„๋กœ๋“ค์€ ๋‹จ๋ฐฉํ–ฅ ๐Ÿ‘‰ ๊ธธ๋งˆ๋‹ค ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ๋‹ค๋ฅด๋ฏ€๋กœ ์˜ค๊ณ  ๊ฐ€๋Š” ๊ธธ ๋˜ํ•œ ๋‹ค๋ฆ„ ! N๋ช…์˜ ํ•™์ƒ๋“ค ์ค‘ ์˜ค๊ณ  ๊ฐ€๋Š” ๋ฐ ๊ฐ€์žฅ ๋งŽ์€ ์‹œ๊ฐ„์„ ์†Œ๋น„ํ•œ ํ•™์ƒ ์ถœ๋ ฅ ๐Ÿ•น๏ธ ํ’€์ด๊ณผ์ • ์ง‘์—์„œ ํŒŒํ‹ฐ ์žฅ์†Œ๊นŒ์ง€ ๊ฐ€๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์ตœ๋‹จ ์‹œ๊ฐ„ + ํŒŒํ‹ฐ ์žฅ์†Œ์—์„œ..

DevOps/๐Ÿณ Docker

[๐Ÿณ Docker] ๋„์ปค ๋ช…๋ น์–ด ์ •๋ฆฌ - Dockerfile

Docker ์ฃผ์š” ๋ช…๋ น์–ด ๋„์ปค ๋ช…๋ น์–ด ์ฐพ์•„์„œ ์‚ฌ์šฉํ•˜๊ธฐ ๐Ÿ‘‰ https://docs.docker.com/reference/cli/docker/container/rm/ cheatsheet ์‚ฌ์šฉํ•˜๊ธฐ ๐Ÿ‘‰ https://docs.docker.com/get-started/docker_cheatsheet.pdf ๋ช…๋ น์–ด ๊ตฌ์„ฑ : docker ์ปค๋งจ๋“œ (์˜ต์…˜) ๋Œ€์ƒ (์ธ์ž) docker run --name apa03 -d -p 8081:80 httpd docker --version docker ps -a : ์ค‘์ง€๋œ ์ปจํ…Œ์ด๋„ˆ๊นŒ์ง€ ๋ชจ๋‘ ํ™•์ธ docker pull [์ด๋ฏธ์ง€ ์ด๋ฆ„] : docker hub์—์„œ ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ๋ชจ๋‘ ์‚ญ์ œ docker rm -f $(docker ps -aq) docker run = ..

์•Œ๊ณ ๋ฆฌ์ฆ˜/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์นธ ์ด๋™ํ•˜๋ฉด ๋™์ผํ•œ..

soogoori
'๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (2 Page)