์ „์ฒด ๊ธ€ 87

๋ฐฑ์ค€ 16965

๋ฌธ์ œ๋”๋ณด๊ธฐ์ „์ฒด ์ฟผ๋ฆฌ์˜ ์ˆ˜(๊ตฌ๊ฐ„์˜ ์ตœ๋Œ€ ์ˆ˜)๊ฐ€ 100 ์ดํ•˜๋ผ๋Š” ์ „์ œ๋กœ ๋ชจ๋“  ๊ตฌ๊ฐ„์— ๋Œ€ํ•œ BFS๋ฅผ ์ง„ํ–‰ํ•จ์œผ๋กœ์„œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.UnionFind๋กœ ํ’€์ดํ•˜๋‹ค ์‹คํŒจํ–ˆ๋Š”๋ฐ, ๊ตฌ๊ฐ„์˜ ์ˆœ์„œ๊ฐ€ ๊ตฌ๊ฐ„์˜ ํฌํ•จ ์—ฌ๋ถ€์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฏ€๋กœ ๋ชจ๋“  ๊ตฌ๊ฐ„์˜ ํฌํ•จ ๊ด€๊ณ„๊ฐ€ ๊ฐฑ์‹ ๋˜์—ˆ์„๋•Œ ๊ฐ๊ฐ์˜ ํฌํ•จ๋œ ๊ตฌ๊ฐ„์— ๋Œ€ํ•œ UnionFind๋ฅผ ๋‹ค์‹œ ์ˆ˜ํ–‰ํ•ด์ค˜์•ผ ์ด ๋ฌธ์ œ๋ฅผ ํ’€์ดํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋‹จ์ˆœํ•œ BFS๋กœ ๋ฌธ์ œ๋ฅผ ์žฌ๊ตฌ์„ฑํ–ˆ๋‹ค. ๊ฒฐ๊ตญ ์™„์ „ํƒ์ƒ‰์œผ๋กœ ํ’€์ดํ•ด์•ผํ•˜๋ฏ€๋กœ 2 a b์— ๋Œ€ํ•œ ์ž…๋ ฅ์ด ์™”์„๋•Œ a ๊ตฌ๊ฐ„์—์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ตฌ๊ฐ„์— ๋Œ€ํ•ด ํƒ์ƒ‰ํ•˜๋ฉด์„œ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์‹œ BFS๋ฅผ ์ง„ํ–‰ํ•˜์—ฌ ๊ฒฐ๊ตญ b ๊ตฌ๊ฐ„์ด ๋‚˜์˜ค๋Š”์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€๋งŒ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค.๊ตฌ๊ฐ„์˜ ์ˆ˜๋ฅผ N์ด๋ผ ํ•˜๊ณ , 2 a b๋ผ๋Š” ์ฟผ๋ฆฌ๊ฐ€ ์˜ค๋Š” ๊ฒฝ์šฐ๋ฅผ M์ด๋ผ ํ• ..

algorithm 2024.07.30

๋ฐฑ์ค€ 21870

๋ฌธ์ œ๋”๋ณด๊ธฐํ’€์ด์™ผ์ชฝ์—์„œ ๋ถ€ํ„ฐ ์„ ํƒํ•  ๊ฒฝ์šฐ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์›์†Œ์˜ ๊ฐœ์ˆ˜๋Š” ⌊|S|/2⌋, ์˜ค๋ฅธ์ชฝ๋ถ€ํ„ฐ ์„ ํƒํ•  ๊ฒฝ์šฐ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์›์†Œ์˜ ๊ฐœ์ˆ˜๋Š”  ⌈|S|/2⌉๋กœ ์ •ํ•ด์ ธ ์žˆ๋‹ค.ํ•œ ๋ฐฉํ–ฅ์„ ์„ ํƒํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ํ•ด๋‹น ๋ฐฉํ–ฅ์˜ ์›์†Œ ์ „์ฒด์˜ GCD๋ฅผ ์„ ํƒํ•˜๊ณ  ๋‚จ์€ ์›์†Œ๋“ค์—์„œ ๋‹ค์‹œ ๋ฐฉํ–ฅ์„ ์„ ํƒํ•˜๋Š” ํƒœ์Šคํฌ๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.๊ทธ๋Ÿฌ๋ฏ€๋กœ ์™ผ์ชฝ์„ ์„ ํƒํ•˜๋Š” ๊ฒฝ์šฐ, ์˜ค๋ฅธ์ชฝ์„ ์„ ํƒํ•˜๋Š” ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•ด ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•˜๋ฉด ํ’€๋ฆฌ๋Š” ๋ฌธ์ œ๋‹ค. ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋Š” 2*10^5์ด๊ณ , a๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ „์ฒด ๋ฐฐ์—ด์— ๋Œ€ํ•ด gcd ์—ฐ์‚ฐ์„ ํ•˜๊ฒŒ ๋˜๋Š” ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ O(N log min(a, b))์ด๋‹ค.#include #include #include using namespace std;int N, arr[200001], ans;int gcd(int a, i..

algorithm 2024.07.30

[์ฝ”๋“œํŠธ๋ฆฌ ์กฐ๋ณ„๊ณผ์ œ] Preprocessing

์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ค‘ ํ•˜๋‚˜๋กœ ์„ค๋ช…๋˜๋Š” ์ „์ฒ˜๋ฆฌ์ด๋‹ค.์ „์ฒ˜๋ฆฌ๋ผ๋Š” ๋‹จ์–ด์˜ ์˜๋ฏธ์™€ ๊ฐ™์ด ์ž…๋ ฅ๋ฐ›์€ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์„ ์ œ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ ์™„์ „ํƒ์ƒ‰์„ ํ”ผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๋ฌธ์ œ 1) ๊ด„ํ˜ธ ์Œ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ๋‹จ์ˆœ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉด ๋ชจ๋“  ์ธ๋ฑ์Šค๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ์—ฌ๋Š” ๊ด„ํ˜ธ๊ฐ€ ๋‘๊ฐœ์ธ ์‹œ์ž‘์ ์„ ์ฐพ๊ณ , ๋‹ซ๋Š” ๊ด„ํ˜ธ๊ฐ€ ๋‘๊ฐœ์ธ ๋ ์ ์„ ์ „๋ถ€ ์ฐพ์•„์„œ ํ•ด์•ผ๋œ๋‹ค. ์ด๋Š” (((()))), (())(())์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๊ฐ€ ์ตœ์•…์˜ ๊ฒฝ์šฐ๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ((์„ ์žก๊ณ  ))์„ ์ฐพ๊ธฐ์œ„ํ•ด ๋ชจ๋“  ์ธ๋ฑ์Šค๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๊ณผ์ •์—์„œ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(N^2)๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค. sol1) ๋ˆ„์ ํ•ฉ ์‘์šฉ ์ „์ฒ˜๋ฆฌ๋ˆ„์ ํ•ฉ์˜ ๋Œ€์ƒ์„ ํŠน์ • ์ธ๋ฑ์Šค ์˜ค๋ฅธ์ชฝ์˜ ))์˜ ๊ฐœ์ˆ˜๋กœ ํ•œ๋‹ค. ( ( ) ) ( ( ) ) ( ( ) ) ์™€ ๊ฐ™์€ ์˜ˆ์‹œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž.์ธ๋ฑ์Šค์˜ ์—ญ์ˆœ์œผ๋กœ ..

algorithm 2024.07.24

[์ฝ”๋“œํŠธ๋ฆฌ ์กฐ๋ณ„๊ณผ์ œ] +1 -1 Technique

๊ธฐ๋ณธ ๊ฐœ๋…1์ฐจ ์ˆ˜์ง์„  ์ƒ์— n๊ฐœ์˜ ์„ ๋ถ„์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, x = k ์ง์„ ๊ณผ ๋งŒ๋‚˜๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์„ ๋ถ„์˜ ์ˆ˜๋Š” ๋ช‡ ๊ฐœ์ธ์ง€๋ฅผ ํŒ๋‹จํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”.๋‹จ, ์ฃผ์–ด์ง€๋Š” x ์ขŒํ‘œ๋Š” ๋ชจ๋‘ ๋‹ค๋ฆ„์„ ๊ฐ€์ •ํ•ด๋„ ์ข‹์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ๊ฐ€์‹œ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด 2๊ฐœ๋ผ๋Š” ๊ฒƒ์„ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ฐ€์‹œ์„ฑ์„ ์ปดํ“จํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์‰ฝ๊ฒŒ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹œ์ž‘์ ์— +1, ๋ ์ ์— -1์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.K๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ณด๋‹ค ์™ผ์ชฝ์— ์žˆ๋Š” ์ ๋“ค์„ ์ƒ๊ฐํ•˜์—ฌ ๋งŒ์•ฝ ๋ ์ ์ด k๋ณด๋‹ค ์ž‘๋‹ค๋ฉด k์™€ ๊ฒน์น˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์‹œ์ž‘์ ์˜ ๊ฐ’ +1 + ๋์ ์˜ ๊ฐ’ -1์„ ํ•˜๋ฏ€๋กœ 0์ด๋œ๋‹ค.K๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ณด๋‹ค ์‹œ์ž‘์ ์ด ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ์  ๋˜ํ•œ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋ฉฐ ๋งŒ์•ฝ ๊ฒน์น˜๋Š” ์ ์ด ์ƒ๊ธธ ๊ฒฝ์šฐ ์‹œ์ž‘์ ์ด +1์ด๋ฏ€๋กœ ๊ฒน์น˜๋Š” ๊ตฌ๊ฐ„ +1๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.์ด๋ ‡๊ฒŒ ๋œ๋‹ค๋ฉด ํŠน์ •ํ•œ ๊ตฌ๊ฐ„..

algorithm 2024.07.17

๋ฐฑ์ค€ 1593

๋ฌธ์ œ๋”๋ณด๊ธฐ๋งˆ์•ผ ๋ฌธ์ž๋ฅผ ํ•ด๋…ํ•˜๋Š” ์ผ์€ ์˜ˆ์ƒ ์™ธ๋กœ ์–ด๋ ค์šด ์ผ์ด๋‹ค. ํ˜„์žฌ์—๋„ ๋œป์ด ์™„์ „ํžˆ ๋ฐํ˜€์ง„ ๋งˆ์•ผ ๋ฌธ์ž๋Š” ๊ฑฐ์˜ ์—†๋Š” ์‹ค์ •์ด๋ฉฐ, ๊ทธ๋‚˜๋งˆ ํ•ด๋…์— ์ง„์ฒ™์ด ์‹œ์ž‘๋œ ์ง€๋Š” 30์—ฌ ๋…„๋„ ๋˜์ง€ ์•Š์•˜๋‹ค.๋งˆ์•ผ ๋ฌธ์ž๋Š” ์†Œ๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๊ทธ๋ฆผ๊ธ€์ž๋กœ ๊ตฌ์„ฑ๋˜๋Š”๋ฐ, ์ด ๊ธ€์ž๋“ค์ด ์—ฌ๋Ÿฌ ์œ„์น˜์—์„œ ๊ฒฐํ•ฉํ•จ์œผ๋กœ์จ ๋‹จ์–ด๋ฅผ ํ˜•์„ฑํ•œ๋‹ค.๋งˆ์•ผ ๋ฌธ์ž ํ•ด๋…์„ ์–ด๋ ต๊ฒŒ ํ•˜๋Š” ์š”์ธ ์ค‘ ํ•˜๋‚˜๋Š” ๋ฐ”๋กœ ๋‹จ์–ด๋ฅผ ์ฝ๋Š” ์ˆœ์„œ์ด๋‹ค. ๋งˆ์•ผ ๋ฌธ์ž๋ฅผ ์“ฐ๋Š” ๊ณ ๋Œ€์ธ๋“ค์€ ๋‹จ์–ด๋ฅผ ๊ธฐ๋กํ•  ๋•Œ ํŠน์ •ํ•œ ๊ทœ์น™ ๋Œ€์‹ , ๊ทธ๋“ค์ด ๋ณด๊ธฐ์— ์ข‹๊ฒŒ ๋ณด์ด๋„๋ก ๋‹จ์–ด๋ฅผ ์ด๋ฃจ๋Š” ๊ธ€์ž๋“ค์„ ์•„๋ฌด๋ ‡๊ฒŒ๋‚˜ ๋ฐฐ์—ดํ–ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๊ณ ๊ณ ํ•™์ž๋“ค์ด ๋งˆ์•ผ ๊ธฐ๋ก์—์„œ ๋‹จ์–ด๋ฅผ ์ด๋ฃจ๋Š” ๊ฐ ๊ทธ๋ฆผ๊ธ€์ž๋“ค์˜ ๋ฐœ์Œ์„ ์•Œ์•„๋‚ด๋”๋ผ๋„ ๊ทธ ๋‹จ์–ด๋ฅผ ์‹ค์ œ๋กœ ๋ฐœ์Œํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ •ํ™•ํžˆ ์•Œ ์ˆ˜ ์—†๋Š” ์…ˆ์ด๋‹ค.๊ณ ๊ณ ํ•™์ž๋“ค์€ W๋ผ๋Š” ํŠน์ • ๋‹จ์–ด๋ฅผ ๋ฐœ๊ตด ๊ธฐ๋ก..

algorithm 2024.07.08

[Python] Subprocess ์‚ฌ์šฉ์‹œ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋ฌธ์ œ

๋ฌธ์ œํŒŒ์ด์„  ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ์‰˜์„ ์ด์šฉํ•˜๋Š” ์ž‘์—…์„ ํ•˜๋Š” ๊ฒฝ์šฐ Subprocess๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์‰˜ ์ž‘์—…์˜ output์„ ํŒŒ์ด์„  ํ”„๋กœ์„ธ์Šค์— ์‰ฝ๊ฒŒ ๋„˜๊ธธ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ Subprocess๋Š” ๋ณ„๋„์˜ ์‰˜์„ ๋„์›Œ์„œ ์ž‘์—…ํ•˜๋ฏ€๋กœ ์‰˜ ์ž‘์—…์ด ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์š”ํ•˜๋Š” ์ž‘์—…์ผ ๊ฒฝ์šฐ์— module not found์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋œจ๊ฑฐ๋‚˜ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋ชจ์Šต์„ ๋ณด์ธ๋‹ค. ํ•ด๊ฒฐ  env๋Š” Subprocess ์‹คํ–‰์‹œ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์ž๊ฐ€ ์žˆ๋‹ค.   ๋‹ค์Œ๊ณผ ๊ฐ™์ด env๋ฅผ ์ง€์ •ํ•ด์„œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‚˜๋Š” ๋งŽ์€ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์ ์šฉํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์œผ๋ฏ€๋กœ (์ฝ”๋“œ๊ฐ€ ๋”๋Ÿฌ์›Œ์ ธ์„œ..) export PATH=""export LIB_PATH=""python ~~~.py์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ shell script๋ฅผ ๋งŒ๋“ค์–ด ์ง์ ‘ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ..

๊ฐœ๋ฐœ 2024.07.01

[Python] ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์Šค ๊ณต์œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ์œ„ํ•œ Manager ๊ฐ์ฒด

์„œ๋ก ํ”ํ•˜๊ฒŒ nonblocking-asyncํ•œ ๋™์ž‘์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋”ฉ/๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ ๊ณผ ๊ฐ™์€ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.ํ•˜์ง€๋งŒ python์—์„œ๋Š” Global Interpreter Lock ์ด๋ผ๋Š” ๋™์ผ ์‹œ์ ์— ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋งŒ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜๋Š” ์ธํ„ฐํ”„๋ฆฌํŒ… ๊ธฐ๋ฒ•์ด ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋™์ž‘์„ ๊ธฐ๋Œ€ํ•˜๊ธฐ ํž˜๋“ค๋‹ค.๊ทธ๋Ÿฌ๋ฏ€๋กœ ํŒŒ์ด์ฌ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ๋„ ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ์„ ์‚ฌ์šฉํ•ด ๋น„๋™๊ธฐ์ ์ธ ์ž‘๋™์„ ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. ํ•˜์ง€๋งŒ ํ”„๋กœ์„ธ์Šค๋Š” ์Šค๋ ˆ๋“œ์™€ ๋‹ฌ๋ฆฌ ๋ณ„๋„์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๊ฒŒ๋˜๋ฏ€๋กœ, ๊ณต์œ ์ž์›์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋‚œ๊ด€์— ๋ด‰์ฐฉํ•œ๋‹ค. ๋ชฐ๋ผ์„œ ๊ทธ๋ƒฅ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์œผ๋กœ ์ž‘์—…ํ–ˆ๋Š”๋ฐ ์•Œ๊ณ ๋ณด๋‹ˆ๊นŒ Manager๋ผ๋Š” ๊ฐ์ฒด๋กœ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ„์˜ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.Manager์˜ ์‚ฌ์šฉ๋ฒ•์€ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์— ๊ฐ€..

๊ฐœ๋ฐœ 2024.06.30

[Web] ๋ธŒ๋ผ์šฐ์ € -> ์„œ๋ฒ„ ์š”์ฒญ์‹œ JSESSIONID ๊ณ„์† ๊ฐฑ์‹ ๋˜๋Š” ์˜ค๋ฅ˜ ์ˆ˜์ •

์‚ฌ์šฉ ์Šคํƒfront - vite+reactback - Springsession control - redisserver - AWS EC2 ๋ฌธ์ œAWS EC2์— ํšŒ์›๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ Spring boot ๊ธฐ๋ฐ˜ Rest API๋ฅผ ์˜ฌ๋ฆฌ๊ณ , ํ”„๋ก ํŠธ์—์„œ ์š”์ฒญ์„ ๋ณด๋‚ผ ๊ฒฝ์šฐ ๊ณ„์†ํ•ด์„œ JSESSIONID ์ฟ ํ‚ค์˜ ๊ฐ’์ด ๊ณ„์† ๋ฐ”๋€Œ๋Š” ํ˜„์ƒ์ด ์ƒ๊ฒผ๋‹ค. ์„ธ์…˜์ด ๊ณ„์†ํ•ด์„œ ๊ฐฑ์‹ ๋˜๋ฉด์„œ ์„ธ์…˜ ๊ด€๋ฆฌ๋ฅผ ๋ ˆ๋””์Šค๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ ˆ๋””์Šค์— ๊ฐฑ์‹ ๋œ session id๋กœ ๊ณ„์†ํ•ด์„œ ๊ฐ’์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜์—ˆ๋‹ค.  ํ”„๋ก ํŠธ, ๋ฐฑ์„ ์ „๋ถ€ ๋กœ์ปฌํ˜ธ์ŠคํŠธ์—์„œ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์ด๋Ÿฌํ•œ ํ˜„์ƒ์ด ์ƒ๊ธฐ์ง€ ์•Š์•˜์ง€๋งŒ ๋‹ค๋ฅธ ์„œ๋ฒ„์— ํ”„๋ก ํŠธ์™€ ๋ฐฑ์„ ๋‘๊ฒŒ ๋˜๋ฉด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๊ฒŒ ๋˜์—ˆ๋‹ค.  ํ•ด๊ฒฐCookie์˜ SameSite ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ lax๋กœ ์„ค์ •๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜์˜€๋‹ค.ํ˜„์žฌ์˜ ..

๊ฐœ๋ฐœ 2024.06.30

๋ฐฑ์ค€ 2482

๋ฌธ์ œ๋”๋ณด๊ธฐ์ƒ‰์„ ํ‘œํ˜„ํ•˜๋Š” ๊ธฐ๋ณธ ์š”์†Œ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์ƒ‰ ์ค‘์—์„œ ๋Œ€ํ‘œ์ ์ธ ์ƒ‰์„ ๊ณ ๋ฆฌ ๋ชจ์–‘์œผ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์„ ์ƒ‰์ƒํ™˜์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋ฏธ๊ตญ์˜ ํ™”๊ฐ€ ๋จผ์…€(Munsell)์ด ๊ต์œก์šฉ์œผ๋กœ ๊ณ ์•ˆํ•œ 20์ƒ‰์ƒํ™˜์ด ๋„๋ฆฌ ์•Œ๋ ค์ ธ ์žˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์€ ๋จผ์…€์˜ 20์ƒ‰์ƒํ™˜์„ ๋ณด์—ฌ์ค€๋‹ค. ๊ทธ๋ฆผ 1. ๋จผ์…€์˜ 20์ƒ‰์ƒํ™˜์ƒ‰์ƒํ™˜์—์„œ ์ธ์ ‘ํ•œ ๋‘ ์ƒ‰์€ ๋น„์Šทํ•˜์—ฌ ์–ธ๋œป ๋ณด๋ฉด ๊ตฌ๋ณ„ํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ์œ„ ๊ทธ๋ฆผ์˜ 20์ƒ‰์ƒํ™˜์—์„œ ๋‹คํ™์€ ๋นจ๊ฐ•๊ณผ ์ธ์ ‘ํ•˜๊ณ  ๋˜ ์ฃผํ™ฉ๊ณผ๋„ ์ธ์ ‘ํ•˜๋‹ค. ํ’€์ƒ‰์€ ์—ฐ๋‘, ๋…น์ƒ‰๊ณผ ์ธ์ ‘ํ•˜๋‹ค. ์‹œ๊ฐ์  ๋Œ€๋น„ ํšจ๊ณผ๋ฅผ ์–ป๊ธฐ ์œ„ํ•˜์—ฌ ์ธ์ ‘ํ•œ ๋‘ ์ƒ‰์„ ๋™์‹œ์— ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ๋กœ ํ•œ๋‹ค.์ฃผ์–ด์ง„ ์ƒ‰์ƒํ™˜์—์„œ ์‹œ๊ฐ์  ๋Œ€๋น„ ํšจ๊ณผ๋ฅผ ์–ป๊ธฐ ์œ„ํ•˜์—ฌ ์„œ๋กœ ์ด์›ƒํ•˜์ง€ ์•Š์€ ์ƒ‰๋“ค์„ ์„ ํƒํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์ž.  ๋จผ์…€์˜ 20์ƒ‰์ƒํ™˜์—์„œ ์‹œ๊ฐ์  ๋Œ€๋น„ ํšจ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ..

algorithm 2024.06.26

๋ฐฑ์ค€ 31846

๋ฌธ์ œ๊ธฐ๋‹ค๋ž€ ์ข…์ด์— ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์ด ํ•œ ์ค„๋กœ ์“ฐ์—ฌ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ข…์ด์— “ABAACA”๊ฐ€ ์“ฐ์—ฌ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ์ด์ œ ์ด ์ข…์ด๋ฅผ ํ•œ ๋ฒˆ๋งŒ ์ ‘์„ ๊ฒƒ์ด๋‹ค. ์ข…์ด๋Š” ์„œ๋กœ ์ด์›ƒํ•œ ๋ฌธ์ž ์‚ฌ์ด์—์„œ๋งŒ ์ ‘์„ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์œ„ ์ข…์ด๋ฅผ 4๋ฒˆ์งธ ๋ฌธ์ž์™€ 5๋ฒˆ์งธ ๋ฌธ์ž ์‚ฌ์ด์—์„œ ์ ‘์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ ์„œ๋กœ ๋งž๋‹ฟ์€ ๋ฌธ์ž ์Œ ์ค‘์—์„œ, ์„œ๋กœ ๊ฐ™์€ ๋ฌธ์ž๊ฐ€ ๋งž๋‹ฟ์€ ์Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ด ์ ‘๊ธฐ์˜ ์ ์ˆ˜๊ฐ€ ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์•ž์—์„œ์˜ ์ ‘๊ธฐ์˜ ์ ์ˆ˜๋Š” 1์ ์ด ๋œ๋‹ค. ํ•˜์ง€๋งŒ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด 3๋ฒˆ์งธ ๋ฌธ์ž์™€ 4๋ฒˆ์งธ ๋ฌธ์ž ์‚ฌ์ด์—์„œ ์ข…์ด๋ฅผ ์ ‘์œผ๋ฉด ์ ์ˆ˜๋Š” 2$์ ์ด ๋œ๋‹ค. ์ด์ œ ์—ฌ๋Ÿฌ๋ถ„์€ ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด ๐‘†$ S $๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์งˆ๋ฌธ ๐‘„๊ฐœ์— ๋‹ตํ•ด์•ผ ํ•œ๋‹ค.โ€Š๐‘™ ๐‘Ÿ$: ..

algorithm 2024.06.24