ALL
587

๐ ๋ฐฑ์ค 3109 ๋ฑ JAVA
1. ๋ฌธ์ ๋ถ์ [3190 ๋ฑ ๋ฌธ์ ๋งํฌ](https://www.acmicpc.net/problem/3190) ์ง๋ ์ด ๊ฒ์์ ์๋ฆฌ๋๋ก ์์ง์ด๋ ๋ฌธ์ ๋น ๊ณต๊ฐ์ 0, ์ฌ๊ณผ๋ 1, ๋ฑ์ด ์กด์ฌํ๋ ์๋ฆฌ๋ 2๋ก ํ์ํ๋ค. ๋ฑ์ด 2์ฐจ์ ๋ฐฐ์ด ๋ด๋ฅผ ์์ง์ -> ์์ง์ด๋๊น, ์ง๋๊ฐ ์ฅ์๋ 2๊ฐ ์๋๋ผ ๋ค์ 0์ผ๋ก ์์ผํจ. ์ฌ๊ณผ๋ฅผ ๋จน์ผ๋ฉด ๋ฑ์ ๋ชธ์ง์ด 1 ์ปค์ง ๋ฑ์ด ๋ฒฝ์ ๋ถ๋ชํ๋ฉด ๊ฒ์์ค๋ฒ ๋ฑ์ด ์์ ์ ๋ชธ์ ๋ถ๋ชํ๋ฉด ๊ฒ์์ค๋ฒ ๋ฑ์ ๋ฐฉํฅ ์ ํ์ด ๊ฐ๋ฅ -> ๋ช ์ด์ ๋ฐ์๊ณ, ์๊ณ ๋ฐฉํฅ ์ค ์ด๋๋ก ์์ง์ผ์ง๋ ์ฃผ์ด์ง๋ค. ๊ฒ์์ด ๋ช ์ด๊ฐ ๊ฑธ๋ฆฌ๋์ง ๊ตฌํ๊ธฐ (๋ฑ์ ํ ๋ฒ ์์ง์ผ ๋, 2์ฐจ์ ๋ฐฐ์ด์์ ํ ์นธ ์์ง์ด๊ณ , ์ด๋ ์๊ฐ์ด 1 ๋ ๋ค.) 2. ํธ๋ ์๋ฆฌ ์ ๊ธฐ ๋์ค๋ 1~5๋ฅผ ํจ์๋ก ์์ฑํด์, ํจ์๊ฐ ๋์๊ฐ๋๋ก ํ๋ฉด ๋๋ค. ์ฒ์์๋..
2024.04.15
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด

๐ ๋ฐฑ์ค 2085 ์ฌํ๊ฒ์ JAVA
1. ๋ฌธ์ ์ค๋ช
(์ฌํ๊ฒ์ ๋งํฌ)[https://www.acmicpc.net/problem/3085] ์บ๋ ํฌ๋ฌ์ฌ ์ฒ๋ผ, ์๋ก ๋ค๋ฅธ ์ข
๋ฅ์ ์บ๋๊ฐ ๋ณด์ด๋ฉด ์๋ฆฌ๋ฅผ ๋ฐ๊พผ๋ค. ๊ทธ ํ, ํ ํ, ํน์ ํ ์ด์์ ๊ฐ์ ์ข
๋ฅ์ ์บ๋๋ผ๋ฆฌ ๋์ด๋์ด ์์ผ๋ฉด ๊ทธ๊ฑด ํฐ์ ธ์ ์ฌ๋ผ์ง. ์ฃผ์ด์ง 2์ฐจ์ ๋ฐฐ์ด์์ ํ ๋ฒ ์๋ฆฌ๋ฅผ ๋ฐ๊ฟจ์ ๋ ํฐ์ง ์ ์๋ ์ต๋ํ์ ์บ๋์ ๊ฐ์๋ฅผ ๊ตฌํ์์ค 2. ํธ๋ ์๋ฆฌ ์๋ก ๋ค๋ฅธ ์ข
๋ฅ์ ์บ๋๋ฅผ ๋ง๋๋ฉด ์๋ฆฌ๋ฅผ ๋ฐ๊พผ๋ค. ๋ชจ๋ ํ์ ๊ฒ์ฌํ๋ฉฐ, ์ผ๋ จ์ ์ฐ์์ฑ์ ๊ฐ์ง ์บ๋์ ๊ฐ์๋ฅผ ์ผ๋ค. -> ์ต๊ณ ๊ธธ์ด ๊ฐฑ์ ๋ชจ๋ ์ด์ ๊ฒ์ฌํ๋ฉฐ, ์ผ๋ จ์ ์ฐ์์ฑ์ ๊ฐ์ง ์บ๋์ ๊ฐ์๋ฅผ ์ผ๋ค. -> ์ต๊ณ ๊ธธ์ด ๊ฐฑ์ ์ต๊ณ ๊ธธ์ด๋ฅผ ์ถ๋ ฅํ๋ค. 3. ์ฝ๋ ๋ถ์ import java.io.BufferedReader; import java.i..
2024.04.11
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด

๐ ๋ฐฑ์ค 1038 ๊ฐ์ํ๋ ์
1. ๋ฌธ์ ๋ถ์ ๊ฐ์ํ๋ ์ ๋ฌธ์ ๋งํฌ 321, 952 ๋ฑ ์ ์ผ ํฐ ์๋ฆฟ์๋ถํฐ ์์ ์๋ฆฟ์๋ก ์ฌ์๋ก, ์๋ฆฟ์์ ๊ฐ์ด ์์์ง๋ ๊ฒฝ์ฐ, ๊ฐ์ํ๋ ์๋ผ๊ณ ํ๋ค. ๋ฐ๋ฉด 322, 235 ๋ฑ์ ์์ ์ ์์์ ๋ฒ์ด๋๊ธฐ์ ๊ฐ์ํ๋ ์๊ฐ ์๋๋ค. 0์ 0๋ฒ์งธ ๊ฐ์ํ๋ ์, 1์ 1๋ฒ์งธ ๊ฐ์ํ๋ ์, 9๋ฅผ 9๋ฒ์งธ ๊ฐ์ํ๋ ์ ๋ผ๊ณ ํ์ ๋, ์ฃผ์ด์ง N์ ๊ดํ์ฌ, N๋ฒ์งธ ๊ฐ์ํ๋ ์์ ๊ฐ์ ๊ตฌํ์ฌ๋ผ 2. ํธ๋ ์๋ฆฌ ์กฐํฉ์ด๋ค. ํ์ง๋ง ์๋์ ์กฐํฉ์ฒ๋ผ ์ค๋ฆ์ฐจ์์ผ๋ก๋ ํ ์ ์๋ค. (1) ์ฒซ๋ฒ์งธ ์๋ฆฟ์๋ฅผ ๊ณ ์ ํ๊ณ , ๊ทธ ์๋ฆฟ์๋ฅผ limit์ผ๋ก ์ ํ๋ค. (2) ์กฐํฉ์ ๋๋ฉฐ, ๋ ๋ฒ์งธ ์๋ฆฟ์๋ limit๋ณด๋ค ์์ ์ ์ค์์ ํ๋๋ฅผ ํํ๋ค. (3) ์ฌ๊ท๋ฅผ ๋๋ค. (4) ์ธ ๋ฒ์งธ ์๋ฆฟ์๋ฅผ ๊ณ ๋ฅผ ๋๋ ๋ ๋ฒ์งธ ์๋ฆฟ์๊ฐ ๋์ด์ค ์ ์๋ li..
2024.04.09
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด

๐ ๋ฐฑ์ค 14500 ํ
ํธ๋ก๋ฏธ๋
ธ
1. ๋ฌธ์ ๋ถ์ ๋ฐฑ์ค ํ
ํธ๋ก๋ฏธ๋
ธ ๋งํฌ 2์ฐจ์ ๋ฐฐ์ด์์ ๋ฉด ๋ ๋ฉด์ผ๋ก ๋ถ๋ ์์๋ผ๋ฆฌ ์ด 4๊ฐ๋ฅผ ์ด์์ ๋, ์์๊ฐ์ ํฉ์ด ์ต๋๊ฐ์ด ๋๋ ๊ฒฝ์ฐ๋ฅผ ๊ตฌํ์ฌ๋ผ. 2. ํธ๋ ์๋ฆฌ ํ
ํธ๋ก๋ฏธ๋
ธ๋ก ๋์ฌ ์ ์๋ ๊ฐ๋ค์ด ๋ฏธ๋ฆฌ ๋์ ์๋ค. ์ผ์ชฝ ์๋จ๋ถํฐ 1๋ฒ์ด๋ผ๊ณ ํ์. ๊ทธ๋ฆฌ๊ณ ์ผ์ชฝ -> ์ค๋ฅธ์ชฝ์ผ๋ก ๋ฒํธ๋ฅผ ๋ถ์ด๊ฒ ๋ค. 1๋ฒ๋ถํฐ 4๋ฒ์ ํด๋นํ๋ ๋ธ๋ญ์ DFS๋ก ๊ฐ์ ๊ตฌํ ์ ์๋ค. ์๋ฅผ ๋ค์ด๋ณด๋ฉด, ๋ค์๊ณผ ๊ฐ๋ค. ํ์ง๋ง 5๋ฒ์ ๊ฒฝ์ฐ ๋จ์ dfs๋ก ์ ํ๋ฆฐ๋ค ์๋ํ๋ฉด ๋๋ฒ์งธ depth ๋ถํฐ ๊ฐ ์ ์๋ ๊ธธ์ด 2 ๊ฐ๋๋ก ๊ฐ๋ผ์ง๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ผ์ DFS๋ก๋ ํ์ง ๋ชปํ๊ณ , ์ค์์์ ์์ํ์ฌ 4๋ฐฉ ํ์ ์ค 3๋ฐฉ์ ๊ณ ๋ฅด๋ ์กฐํฉ์ผ๋ก ๋ฌธ์ ๋ฅผ ํ์๋ค. 3. ์ฝ๋ ๋ถ์ import java.io.BufferedReader; import java..
2024.04.09
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด

๐ค ์๊ณ ๋ฆฌ์ฆ ์ด๋ก - ์์ด๊ณผ ์กฐํฉ [JAVA]
0. ์ค๋ช
ํ๋ ค๋ ๊ฒ (1) ์์ด, ์กฐํฉ, ์ค๋ณต ์์ด, ์ค๋ณต ์กฐํฉ์ ์ ์ (2) JAVA ์ธ์ด๋ฅผ ์ผ์ ๋, ๊ตฌํ ๋ฐฉ๋ฒ 1. ์์ด (1) ์์ด์ ๋ป nPr = n ๊ฐ ์ค์์ r๊ฐ๋ฅผ ์ค๋ณต ์์ด ๋ฝ์์ ์์ ์๊ฒ ๋์ดํ๋ ๊ฒ์ ๋งํ๋ค. ๋ฐ๋ผ์ {1, 2, 3, 4, 5} ์ค 5P3 ์์ {1, 2, 3} ๊ณผ {1, 3, 2}๋ ๋ค๋ฅธ ์ซ์์ด๋ค. (2) ๊ตฌํ ๋ฐฉ๋ฒ ์์ด์ ์ฌ๊ท๋ก ๊ตฌํํ๋ค. ์์ด์ ์ฌ๊ท๋ก ๊ตฌํํ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์ฑ์์๋ค์ด ํ์ํ๋ค. ์ ์ฒด ์์๋ค์ ๋ํ ๋ฐฉ๋ฌธ ๋ฐฐ์ด isVisited [] : ์์ด๋ก ๊ฐ์ ๋ฝ์ ๋, ์ค๋ณต์ด ์์ด์ผ ํ๋ฏ๋ก, ๋ฐฉ๋ฌธ ๋ฐฐ์ด์ ํตํด, ์ด๋ฏธ ๋ฐฉ๋ฌธํ ์ง์ ์ ๊ทธ๋ฅ ์ง๋์น๋๋ก ๊ตฌํ ํด์ผ ํ๋ค. ๋ฝํ r๊ฐ์ ์์๋ฅผ ๋ด์ ๋ฐฐ์ด output [] : ์ ์ฒด ์์๊ฐ ๋ด๊ธด ๋ฐฐ์ด์ arr ..
2024.04.07
์๊ณ ๋ฆฌ์ฆ/์๊ณ ๋ฆฌ์ฆ-์ด๋ก

๐ ๋ฐฑ์ค 2503 ์ซ์์ผ๊ตฌ JAVA
1. ๋ฌธ์ ์ค๋ช
2503๋ฒ ์ซ์์ผ๊ตฌ ์ฃผ์ ์์๊ฐ ์ซ์ 3๊ฐ๋ฅผ ๋จธ๋ฆฟ์์ผ๋ก ์๊ฐ, ๋ฏผํ์ด๋ ๊ทธ ์ซ์๋ฅผ ๋ง์ถ๊ธฐ ์ํด 3๊ฐ์ ์๋ฅผ ๋งํ์ฌ N๋ฒ ์ถ์ธก์ ํ๋ค. ๋ฏผํ์ด๊ฐ ๋งํ ์ซ์ ์ค ํ๋๊ฐ ์์๊ฐ ์๊ฐํ ์ซ์์ ์์น๋ ๊ฐ๊ณ , ์ซ์๋ ๊ฐ์ผ๋ฉด 1 Strike, ๋ฏผํ์ด๊ฐ ๋งํ ์ซ์ ์ค ํ๋๊ฐ ์์๊ฐ ์๊ฐํ ์ซ์์ ์์น๋ ๋ค๋ฅด์ง๋ง, ์ซ์๋ ๊ฐ์ผ๋ฉด 1ball, ์ด ํ์๋ฅผ N๋ฒ ๋ฐ๋ณตํ ๋, ์์๊ฐ ์๊ฐํ ์ซ์ 3๊ฐ๊ฐ ๋ ์ ์๋ ํ๋ณด ์์ ๊ฐ์๋ฅผ ๊ตฌํ์ฌ๋ผ 2. ๋ฌธ์ ํธ๋ ์๋ฆฌ ๋ฏผํ์ด๊ฐ ์ถ์ธกํ ์ซ์๊ฐ ์์์ ๋จธ๋ฆฟ์ ์ซ์์ ์ผ๋ง๋ ๊ฐ์์ง๋, ํด๋น ์ซ์๊ฐ ๋ฐ์ ball_count๋ฅผ ๋ณด๋ฉด ๋๋ค. ์์์์, ์์๊ฐ ์๊ฐํ ์ซ์๊ฐ 324์ด๊ณ , ๋ฏผํ์ด๊ฐ ์ถ์ธกํ ์๊ฐ 429์ด๋ฉด 1S 1B์ด๋ค. ๋ฐ๋ผ์ ๋ฏผํ์ด๊ฐ ๋งํ ์ซ์ N ๊ฐ์ Ball..
2024.04.07
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด

Spring ๊ณต์๋ฌธ์ Concept of AOP ๋ฒ์ญ
์๋ณธ ๋ฌธ์AOP๊ฐ ๋ด๊ณ ์๋ ๋ฐ์AOP๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ช๋ช ์ค์ฌ์ ์ธ ์๊ฐ๋ค๊ณผ ์ฉ์ด๋ค์ ์ ์ํ๋ ๊ฒ์ผ๋ก ์์ํด๋ณด์! ์ฌ๊ธฐ์ ์ฐ์ด๋ ์ฉ์ด๋ค์ ์คํ๋ง ๋ง์ถค์ด ์๋๋ค. ๋ฐ๋ผ์ ๋ถํํ๊ฒ๋ AOP์ ์ฉ์ด๋ค์ ํน๋ณํ ์ง๊ด์ ์ด์ง ๋ชปํ๋ค. ํ์ง๋ง, ๋ง์ฝ ์คํ๋ง์ด AOP ๊ฐ๋
๋์
์ ์ํ ๊ทธ๊ฒ๋ง์ ์ฉ์ด๋ฅผ ์ผ๋ค๋ฉด, ๊ทธ๊ฒ์ด ๋ ์ฐ๋ฆฌ๋ฅผ ํผ๋์ค๋ฝ๊ฒ ๋ง๋ค ๊ฒ์ด๋ค!1. ์ฉ์ด์ค๋ช
Aspect(๊ด์ ): ๋ณต์์ Class๋ค์ ๊ฐ๋ก์ง๋ฅด๋ ๊ด์ฌ์ฌ์ ๋ํ ๋ชจ๋ํ๋ฅผ ์๋ฏธํ๋ค.(๊ธฐ์กด์ ์ฐ๋ฆฌ๊ฐ ์๋ฒ ๋ก์ง์ ๊ณต๋ถํ ๋, ๊ธฐ๋ฅ์ ๋ฌด์์ด๋ผ ์๊ฐํ๋๊ฐ? Service Class ํ๋๊ฐ ๊ณง ๊ธฐ๋ฅ์ด๋ผ๊ณ ์๊ฐํ๋ค. ํ์ง๋ง AOP์์๋ ๊ด์ ์ ๋ฌ๋ฆฌํ์ฌ, ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์๊ตฌ๊ฐ ๋ค์ด์์ Controller -> ๋ณต์์ ์๋น์ค ๋ก์ง -> ๋ค์ ์๋ต ๊น์ง์ ์ ๊ณผ์ ์ ํ..
2024.03.12
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringAOP

Weaving๊ณผ Proxy์ ๋ํ์ฌ
๊นํ๋ธ์๋ ์ ๋ฆฌ ์ฌ๋ ค๋์์ต๋๋ค.์ ์๋ฏผ_๊นํ๋ธ ์ฃผ์Weaving๊ณผ Proxy ๊ฐ์ฒด์ ๋ํ์ฌ์ด๋ฒ ์ฅ์์ ์์๋ณผ ๊ฒ:AOP์์ Weaving์ด๋ ๋ฌด์์ธ๊ฐ? Proxy์์ ๊ด๊ณ๋ ์ด๋ป๊ฒ ๋๋๊ฐ?Proxy ๊ฐ์ฒด๋ ๋ฌด์์ด๊ณ ? AOP์์ ์ฌ์ฉ๋๋ ์๋ฆฌ๋ ๋ฌด์์ธ๊ฐ?1. AOP์์ Weaving์ด๋ ๋ฌด์์ธ๊ฐ?AOP์์ weaving์ด๋ ๋ถ๊ฐ๊ธฐ๋ฅ(advice)์ ๊ทธ๊ฒ์ด ํ๊ฒํ
ํ๋ ๋ณธ ๊ธฐ๋ฅ์ ์ฅ์ฐฉํ๋ ์์
์ ๋งํ๋ค. ๋ฐ๋ผ์ weaving์ ๋ณธ๊ธฐ๋ฅ์ ์ํฅ์ ์ฃผ์ง ์์ผ๋ฉด์ ๋ถ๊ฐ๊ธฐ๋ฅ์ ์ฐ๊ฒฐ์ํค๋ AOP์ ํต์ฌ ์์
์ด๋ค.weaving์ ์คํ๋๋ ์์ ์ ๋ฐ๋ผ 3๊ฐ์ง๋ก ์ข
๋ฅ๊ฐ ๋๋๋ค.(1) Compile Time Weaving(CTW)Spring์์ AOP๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์๋ AspectJ๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐ๋ ๊ฒ๊ณผ, Spring A..
2024.03.12
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringAOP

Spring AOP ๊ณต์ ๋ฌธ์ ์ฝ๊ณ ์ ๋ฆฌ - Concept-of-AOP
Spring AOP ๊ณต์ ๋ฌธ์ ์ฝ๊ณ ์ค์ค๋ก ์ ๋ฆฌํจ.๊นํ๋ธ์๋ ์ฌ๋ ค๋์https://github.com/dalcheonroadhead/Spring-framework-theory/blob/main/AOP/relatedStudy/conceptOfAOP.mdConcept-of-AOP ์ค์ค๋ก ์ ๋ฆฌ๋ชฉ์ฐจAOP๋ ๋ฌด์์ธ๊ฐ?๊ทธ๋ฆผ๊ณผ ํจ๊ป ์์๋ณด๋ ์ฉ์ด ์ ๋ฆฌAdviceJoin PointpointcutAspectIntroductionTarget ObjectAOP proxyWeavingCross-cutting concerns1. AOP๋ ๋ฌด์์ธ๊ฐ?Aop๋ ๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ(Aspect Oriented Programming)์ ๋งํ๋ค. Java๋ผ๋ ์ธ์ด๋ฅผ ๋ฐฐ์ธ ๋ ์ฐ๋ฆฌ๋ ์๋ฐ๊ฐ ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ(Object Oriented ..
2024.03.12
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringAOP

๐ 5430 AC JAVA
๋ชฉ์ฐจ 1. ๋ฌธ์ ์ค๋ช
2. ์๋ฆฌ ์ค๋ช
3. ์ฝ๋ ๋ถ์ 1. ๋ฌธ์ ์ค๋ช
https://www.acmicpc.net/problem/5430 5430๋ฒ: AC ๊ฐ ํ
์คํธ ์ผ์ด์ค์ ๋ํด์, ์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง ์ ์ ๋ฐฐ์ด์ ํจ์๋ฅผ ์ํํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ, ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ์๋ error๋ฅผ ์ถ๋ ฅํ๋ค. www.acmicpc.net 2. ์๋ฆฌ ์ค๋ช
ํด๋น ๋ฌธ์ ๋ deque๋ผ๋ ์๋ฐฉํฅ์์ add, poll์ด ๊ฐ๋ฅํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํ์๋ค. ์์ง deque๊ฐ ๋ฏ์ ๋ถ๋ค์ ์ฌ๊ธฐ๋ก ๊ฐ์ ๋ด์ฃผ์ธ์ https://velog.io/@sdk1926/deque%EB%8A%94-%EC%99%9C-%EC%93%B8%EA%B9%8C toggle(boolean) ๊ฐ์ ๋์๋ค. ๊ทธ๋์ R์ด๋ผ๋ ๋ช
๋ น์ด๊ฐ ๋ค์ด์ค๋ฉด true, fal..
2024.03.09
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด

๐ 14889. ์คํํธ์ ๋งํฌ
๋ชฉ์ฐจ 1. ๋ฌธ์ ์ค๋ช
2. ํผ ์๋ฆฌ ์ค๋ช
3. ์ฝ๋ 1. ๋ฌธ์ ์ค๋ช
https://www.acmicpc.net/problem/14889 14889๋ฒ: ์คํํธ์ ๋งํฌ ์์ 2์ ๊ฒฝ์ฐ์ (1, 3, 6), (2, 4, 5)๋ก ํ์ ๋๋๋ฉด ๋๊ณ , ์์ 3์ ๊ฒฝ์ฐ์๋ (1, 2, 4, 5), (3, 6, 7, 8)๋ก ํ์ ๋๋๋ฉด ๋๋ค. www.acmicpc.net 2. ํผ ์๋ฆฌ ์ค๋ช
์ผ๋จ ๋๋ ์ด๊ฑฐ ๋ต์ง ๋ดค๋ค. (1) ํ์ ์กฐํฉ์ผ๋ก ๋ฐ์ผ๋ก ๋๋๋ค. -> (2) ๊ฐ ํ ๋ฉค๋ฒ๊ฐ์ ์๋์ง ๊ณ์ฐ -> (3) ์ฐจ ๊ตฌํด์ ๊ทธ ์ฐจ๊ฐ ์ง๊ธ๊น์ง์ ๊ฐ ์ค ์ต์์ผ ๊ฒฝ์ฐ ๊ฐฑ์ ์๊ฑฐ๊น์ง๋ ์๊ฐ์ ํ๋๋ฐ, (2)๋ ์กฐํฉ์ผ๋ก ์คํํธํ ๋ด์์ 2๋ช
์ฉ ์ง์ ์ก์์ ๊ฐ์ ๊ณ์ฐ ํด์ผ ํ๋ค๊ณ ์๊ฐํ๋ค. ๊ทธ๋ฌ๋ฉด ๊ฒฝ์ฐ์ ์๊ฐ ๊ธฐํ๊ธ์์ ์ผ๋ก ๋์ด๋๋ค...
2024.03.08
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด

๐ 2589 ๋ณด๋ฌผ์ฌ
๋ชฉ์ฐจ 1. ๋ฌธ์ ์ค๋ช
2. ๋ด๊ฐ ํผ ๋ฐฉ๋ฒ 3. ์ฝ๋ ๋ถ์ 1. ๋ฌธ์ ์ค๋ช
https://www.acmicpc.net/problem/2589 2589๋ฒ: ๋ณด๋ฌผ์ฌ ๋ณด๋ฌผ์ฌ ์ง๋๋ฅผ ๋ฐ๊ฒฌํ ํํฌ ์ ์ฅ์ ๋ณด๋ฌผ์ ์ฐพ์๋์ฐ๋ค. ๋ณด๋ฌผ์ฌ ์ง๋๋ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ง์ฌ๊ฐํ ๋ชจ์์ด๋ฉฐ ์ฌ๋ฌ ์นธ์ผ๋ก ๋๋์ด์ ธ ์๋ค. ๊ฐ ์นธ์ ์ก์ง(L)๋ ๋ฐ๋ค(W)๋ก ํ์๋์ด ์๋ค. ์ด ์ง๋์์ www.acmicpc.net ์ก์งํ๊ณ ๋ฐ๋ค๊ฐ ์๋๋ฐ, ํด์ ์ ์ก์ง๋ก๋ง ๊ฐ ์ ์๋ค. ์ก์ง๋ ์ธ์ ํ ์ ์๊ณ , ํด์ ์ ๋๊ฐ์ ์ ์ ์ธํ ์ฌ๋ฐฉ์ผ๋ก๋ง ์์ง์ผ ์ ์๋ค. ๋ณด๋ฌผ์ ํด์ ์ด ๊ฑธ์ด์ ๊ฐ ์ ์๋ ์ก์ง ์์ ๊ฐ์ฅ ๊ฑฐ๋ฆฌ๊ฐ ๊ธด ์ก์ง๋
ธ๋์ ๊ฐ๊ฐ ์กด์ฌํ๋๋ฐ, ์ด๋, ๋ณด๋ฌผ 2๊ฐ๋ฅผ ์ฐพ๋ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ์์ค. 2. ๋ฌธ์ ํผ ์๋ฆฌ ์ค๋ช
2์ฐจ์ ๋ฐฐ์ด์ ๋๋ฉด์ ์ก์ง๋ฅผ ๋ง๋๋ฉด..
2024.03.06
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด

[01]-OAuth2 ์ด๋ก
๋ชฉ์ฐจ1. OAuth2์ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ (OAuth2๋ ์ ํ์ํ๊ฐ?)2. ๊ทธ๋์ OAuth2๋?3. OAuth2 ๊ด๋ จ ์ฉ์ด ์ ๋ฆฌ 4. OAuth2์ ๋์ ๊ณผ์ 1. OAuth์ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ (OAuth2๋ ์ ํ์ํ๊ฐ?)ํ IT ์๋น์ค ์์ฅ์๋ ๊ตฌ๊ธ์ด๋ ์๋ง์กด, ํธ์ํฐ์ ๊ฐ์ ๋ฉ๊ฐ๊ธ ๊ธฐ์
๋ค์ด ๋ค์ ์กด์ฌํ๋ค. ์ด ๊ธฐ์
์ ์ฌ์ฉ์๋ค์ ์์ฒ๋ง ๋ง๊ฒ๋ ์ต๋ ๋จ์๋ก ๋์ด๊ฐ๋ค. ๊ทธ ๋งํผ ํด๋น ๊ธฐ์
๋ค์ด ๊ฐ์ง ๋ฆฌ์์ค๋ ๋ค์ ์กด์ฌํ ๊ฒ์ด๋ค. ํ์ง๋ง, ๋จ์ฒด์ํ์ ํด๋ดค๋ค๋ฉด ์ ์์๋ฏ์ด ํ๋์ ์ผ์ ์์
์ ์ ์์ด ๋ง์กฑํ๋ ๋ฐฉ์์ผ๋ก ์ํํ๋ค๋ ๊ฒ์ ๋ถ๊ฐ๋ฅ์ ๊ฐ๊น๋ค. A๋ ์๋ฅ ์์
์ ๋ ์๋ฒฝํ ํ๊ณ ๋ค์ ์ผ๋ก ๊ฐ์ผ๋ฉด ์ข๊ฒ ๊ณ , B๋ ๊ทธ์ ๋ณธ ์์
์ ๋นจ๋ฆฌ ์งํํ๊ณ ์ถ์ ์๋ ์๋ค. ์ด๋ ์ฐ๋ฆฌ๊ฐ ํน์ ์๋น์ค๋ฅผ ์ด์ฉํ ๋๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค. ..
2024.03.03
๋ฐฑ์๋ ๊ฐ๋ฐ/Spring-Security
๐ 2667๋ฒ ๋จ์ง ๋ฒํธ ๋ถ์ด๊ธฐ JAVA
1. ๋ฌธ์ https://www.acmicpc.net/problem/2667 2667๋ฒ: ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ ๊ณผ ๊ฐ์ด ์ ์ฌ๊ฐํ ๋ชจ์์ ์ง๋๊ฐ ์๋ค. 1์ ์ง์ด ์๋ ๊ณณ์, 0์ ์ง์ด ์๋ ๊ณณ์ ๋ํ๋ธ๋ค. ์ฒ ์๋ ์ด ์ง๋๋ฅผ ๊ฐ์ง๊ณ ์ฐ๊ฒฐ๋ ์ง์ ๋ชจ์์ธ ๋จ์ง๋ฅผ ์ ์ํ๊ณ , ๋จ์ง์ ๋ฒํธ๋ฅผ ๋ถ์ด๋ ค ํ๋ค. ์ฌ www.acmicpc.net 2. ํ์ด์ ๋ํ ์ค๋ช
2์ฐจ์ ๋ฐฐ์ด์ ์ํํ๋ฉด์, (1) 1์ ๋ง๋๋ค๋ฉด! ๊ฑฐ๊ธฐ์ ๋ถํฐ ํด๋น 1์ ์ํ์ข์ฐ ์ค ๋ถ์ด์๋ 1์ด ์๋์ง ํ์ธํ๋ค. (์ํํธ ๋จ์ง ๋ด์ ์ํํธ ์ ์ฒดํฌ) (2) ๋ด๊ฐ ๊ธ๋ฐฉ ๋ฐฉ๋ฌธํด์ ํ์ธํ 1์ -1๋ก ๊ฐ์ ๋ฐ๊พธ์ด์ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌํ๋ค. (3) 1 search๊ฐ ๋๋๋ฉด ํด๋น ์ํํธ ๋จ์ง์ ์ํํธ ์๋ฅผ ๋ค ์ผ ๊ฒ์ด๋ค. (4) ์ด๋ ์ํํธ ์๋ฅผ aptList๋ผ๋ ์ํํธ ๋จ์ง..
2024.03.02
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด
๐ 2606 ๋ฐ์ด๋ฌ์ค JAVA
1. ๊ฐ์ ์์ฃผ ๊ธฐ๋ณธ์ ์ธ BFS๋ก ํ ์ ์๋ ๊ฐ๋จํ ๋ฌธ์ ์ด๋ค. ์ด ๋ฌธ์ ๊ฐ ์ ์ ํ๋ฆฌ๋ ์ฌ๋์ BaaaaaaaaarkingDog๋์ ๊ทธ๋ํ ๊ฐ์๋ฅผ ๋ณด๊ณ ์ค๊ธธ ๋ฐ๋๋ค. ์ค๋ฒ 3๋ ์์ ๋ ํ๋ฆฌ๋ฉฐ ํ์๋ค... ์ฌํ์ด๋ ์์! ๋ด๊ฐ ํ๋ฒ ํ๋ ธ์๋๋ฐ, ์ด์ ๋ ์๋ฐฉํฅ ๊ทธ๋ํ์์ ์๊ฐํด์ฃผ์ง ์๊ณ ํ์ด์ ์ด๋ค. ์ด๋ก ์ ๋ฆฌ ๋ค์ ํด์ผ๊ฒ ๋ค. 2. ์์ค์ฝ๋ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.StringTokenizer; public class Main { pu..
2024.02.29
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด

SpringBoot3 WebSocket ChattingServer๋ง๋ค๊ธฐ 5๋จ๊ณ - ์ฑํ
๋ฐฉ ์ธ์ ์ ์ฒดํฌ, Server Side Event ์ฒ๋ฆฌ
0. ๋ชฉ์ฐจ 1. ๊ฐ์ - ์ด์ ๊ณผ ๋ฌ๋ผ์ง ์ 2. ์ ๊ฐ๋ 3. ์ฝ๋ ๋ถ์ 4. ํ๋ก์ ํธ ์งํํ๋ฉด์ ๊ฒช์๋ ์ค๋ฅ๋ค https://www.daddyprogrammer.org/post/5290/spring-websocket-chatting-server-enter-qut-event-view-user-count/ ๋ฅผ ๋ณด๊ณ ์งํ ํ์ต๋๋ค. 1. ๊ฐ์ โ ์
์ฅ ํด์ฅ ์ ์ธ์ ์ ์ฒดํฌํด์ ์ธ์ ์๋ฅผ ์ฑํ
๋ฐฉ์ ํ์ โ ์ ๋ฒ ํฌ์คํ
๊น์ง๋ ์ฑํ
๋ฐฉ ์
์ฅ๊ณผ ๊ตฌ๋
์ ํด๋ผ์ด์ธํธ์์ ์ธ์งํ๊ณ ๋ฐฑ์๋๋ก ๋ณด๋ด์ฃผ๊ณ , ๊ทธ์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ํ์. ์ด๋ฒ์๋ Sever Side์์ ํด๋น ์ด๋ฒคํธ๋ฅผ ์ง์ ์ธ์ง ํ๊ณ , ์ผ์ ์ฒ๋ฆฌํ๋๋ก ๋ฐ๊ฟจ์. 2. ์ ๊ฐ๋ ์๋ ๋ฐฐ์ธ ๋ Controller -> service -> Repository๋ก ์ผ์ด ์ ํด์ ธ ์์์ง..
2024.01.23
๋ฐฑ์๋ ๊ฐ๋ฐ/WebSocket
(JWT binding ์ค๋ฅ) NoClassDefFoundError: javax/xml/bind/DatatypeConverter
implementation 'io.jsonwebtoken:jjwt:0.9.1' ์ด๊ฒ๋ง ์์ผ๋ฉด ์๋๋ค. ์ด๊ฑฐ ์ด์ธ์ // com.sun.xml.bind implementation 'com.sun.xml.bind:jaxb-impl:4.0.1' implementation 'com.sun.xml.bind:jaxb-core:4.0.1' // javax.xml.bind implementation 'javax.xml.bind:jaxb-api:2.4.0-b180830.0359' ์ถ๊ฐ ํด์ผํจ.
2024.01.22
๊ฒช์ ์ค๋ฅ์ ํด๊ฒฐ์ฑ

SpringBoot WebSocket Chatting Server๋ง๋ค๊ธฐ 4๋จ๊ณ - SpringBoot Security ์ฅ์ฐฉ
0.๋ชฉ์ฐจ ๊ณต๋ถํ ๋ด์ฉ๋ค์ ์ถ์ฒ: ddadyProgrammer๋์ ๋ธ๋ก๊ทธ Spring websocket chatting server(4) - SpringSecurity + Jwt๋ฅผ ์ ์ฉํ์ฌ ๋ณด์๊ฐํํ๊ธฐ ์ด๋ฒ ์ฅ์์๋ SpringSecurity์ Jwt๋ฅผ ์ด์ฉํ์ฌ Web ๋ฐ Websocket์ ๋ณด์์ ์ข ๋ ๊ฐํํ๊ณ . ๊ธฐ์กด์ ๋ณต์กํ ๋ก์ง์ ๊ฐ์ํํ๋ ์์
์ ์งํํด ๋ณด๊ฒ ์ต๋๋ค. ํฌ๊ฒ ์๋์ 3๊ฐ์ง ์์
์ ์งํํ๊ฒ ์ต๋๋ค. Spri www.daddyprogrammer.org 1. ๊ฐ์ (์๋กญ๊ฒ ์ถ๊ฐํ ๊ฒ๋ค) 2. ์ ๊ฐ๋ 3. ์ฝ๋ ๋ถ์ 4. ํ๋ก์ ํธ ์งํํ๋ฉฐ ๋ง๋ฌ๋ ์ค๋ฅ ๋ชจ์ 1. ๊ฐ์ ์ด๋ฒ ์ฅ์์๋ ์๋กญ๊ฒ Spring Security๋ฅผ ์ ์ฉํ๋ค. ์๋ ํ๋ก์ ํธ๋ ์ ๊ทผํ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ๋ํ๋ช
๋ง ์
๋ ฅํ๋ฉด ๋ชจ๋ ์ฌ์ฉ..
2024.01.22
๋ฐฑ์๋ ๊ฐ๋ฐ/WebSocket
@Configuration์ ๋ํ์ฌ
@Configuration์ ํด๋น ํด๋์ค๊ฐ ์ค์ ์ ๊ดํ ํด๋์ค์์ Spring Container์๊ฒ ์๋ฆฌ๊ณ , ๊ทธ๊ฒ์ Bean์ผ๋ก ๋ฑ๋กํ๋๋ก ํ๋ ์ด๋
ธํ
์ด์
์ด๋ค. ์ด? ๊ทธ๋ฌ๋ฉด ํด๋น ํด๋์ค๊ฐ ์ค์ ํ์ผ์์ ๊ฐ์์ ์ผ๋ก ์๋ฆฌ๋ ์ผ ์ธ์๋ @Bean๊ณผ ๋๊ฐ์ ๊ฒ์ธ๊ฐ? ๋ฌผ๋ก ์๋๋ค. ์ค์ ํ์ผ์ ๊ฒฝ์ฐ, ํด๋น ์ค์ ์ ํต์ผ์ฑ์ ์ํด์ ํ๋๋ง ์์ฑํ๊ณ , ํ๋ก์ ํธ ๋ด์์ ๊ณ์ ๊ทธ ๋ด์ฉ์ ์ฌํ์ฉํ๋ฉฐ ์จ์ผํ๋ค. ์ด์ ์์ํ์ฌ @Configuration์ด๋ ์ด๋
ธํ
์ด์
์ ํด๋์ค๋ฅผ Bean์ผ๋ก ๋ฑ๋กํ๊ณ ํด๋น Bean ๊ฐ์ฒด๋ฅผ ์ฑ๊ธํค์ด ๋๋๋ก ์ค์ ํด์ค๋ค.
2024.01.20
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
SpringBoot3 Embedded Redis ์ค์ ์ค๋ฅ
๋๋ ์ฑํ
์๋ฒ ๋ง๋ค๊ธฐ๋ฅผ ์ฐ์ตํ๋ฉฐ ๋๋ํ๋ก๊ทธ๋๋จธ ์ฑํ
์๋ฒ ๋ง๋ค๊ธฐ(3) Spring websocket chatting server(3) - ์ฌ๋ฌ๋์ ์ฑํ
์๋ฒ๊ฐ์ ๋ฉ์์ง ๊ณต์ ํ๊ธฐ by Redis pub/sub ์ ์ฅ์์ ์ค์ต์ ํตํด ์ฑํ
์ ๊ตฌํํด ๋ณด์์ต๋๋ค. websocket๊ณผ Stomp๋ฅผ ์ด์ฉํ ๊ตฌํ๋ง์ผ๋ก๋ ์ฑํ
์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ์ถฉ๋ถํ ๊ตฌํํ ์ ์๋ ๊ฒ์ ํ์ธํ ์ ์์์ต๋๋ค. ํ์ง๋ง ์๋น์ค์ ์ฌ์ฉํ๋ ค๋ฉด www.daddyprogrammer.org ๋ฅผ ์ฐธ๊ณ ํ์๋๋ฐ, ํด๋น ๋ถ๋ถ์ ์งํํ๋ฉฐ ์๋๋ ๋ถ๋ถ์ด ์๊ฒผ๋ค. ๋ฐ๋ก Embedded Redis๋ฅผ ์ค์ ํ๋ Config Class ๋ถ๋ถ์ด์๋ค. ํด๋น ๋ด์ฉ์์๋ public void redisServer() { redisServer = new RedisServer(r..
2024.01.20
๊ฒช์ ์ค๋ฅ์ ํด๊ฒฐ์ฑ

SpringBoot WebSocket Chatting Server ๋ง๋ค๊ธฐ 3๋จ๊ณ - ์ฌ๋ฌ ์ฑํ
์๋ฒ ๊ฐ์ ๋ฉ์ธ์ง ๊ณต์ (by Redis Pub/sub)
2
https://www.daddyprogrammer.org/post/4731/spring-websocket-chatting-server-redis-pub-sub/ 0.๋ชฉ์ฐจ 1. ๊ฐ์ 2. ์ ๊ฐ๋, ์ ์ฒด์ ์ธ ํ๋ฆ ํ์
3. ์ฝ๋ ๋ถ์ 4. ํ๋ก์ ํธ ์งํํ๋ฉด์ ์์๋ ์๋ฌ ํด๊ฒฐ 1. ๊ฐ์ ์ด๋ฒ ํ๋ก์ ํธ์์๋ Redis๋ผ๋ ์ธ๋ฉ๋ชจ๋ฆฌํ DB๋ฅผ ํ์ฉํ์ฌ 2๋ฒ๊น์ง ์งํํ๋ STOMP์ WebSocket๋ง์ผ๋ก ๊ตฌํํ Chatting Server ํ๋ก์ ํธ๋ฅผ ๋ ๊ณ ๋ํ ํ๋ ค๊ณ ํ๋ค. ์ด? ์ด๋ฏธ ํ๋์ ์๋ฒ์์ ์๋ก ๋ฉ์ธ์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฒ์ ์ถฉ๋ถํ ๋๋๋ฐ ์ Redis๋ฅผ ์ฅ์ฐฉํด์ผ ํ ๊น์? ๊ทธ๋ ๋ค๋ฉด, ๋จผ์ Redis๋ฅผ ์ ์ฅ์ฐฉํด์ผ ํ๋์ง์ ๋ํด์ ์ค๋ช
ํ๊ฒ ๋ค. โ STOMP์ WebSocket๋ง์ ์ฐ๋ Chatting Serv..
2024.01.20
๋ฐฑ์๋ ๊ฐ๋ฐ/WebSocket