๐ปProgramming
-
[Algorithm] ์ฐ์ ๋ถ๋ถ์์ด๐ปProgramming/Algorithm 2024. 3. 5. 18:24
๋ฌธ์ N๊ฐ์ ์๋ก ์ด๋ฃจ์ด์ง ์์ด์ด ์ฃผ์ด์ง๋๋ค. ์ด ์์ด์์ ์ฐ์๋ถ๋ถ์์ด์ ํฉ์ด ํน์ ์ซ์ M์ด ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ช ๋ฒ ์๋์ง ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. ๋ง์ฝ N=8, M=6์ด๊ณ ์์ด์ด ๋ค์๊ณผ ๊ฐ๋ค๋ฉด 1 2 1 3 1 1 1 2 ํฉ์ด 6์ด ๋๋ ์ฐ์๋ถ๋ถ์์ด์ {2, 1, 3}, {1, 3, 1, 1}, {3, 1, 1, 1}๋ก ์ด 3๊ฐ์ง์ ๋๋ค. ๋ ์ด์ค for๋ฌธ์ ๋๋ฉด์ ํ์ดํ๋ฉด ์ฝ๊ฒ ์ง๋ง ๊ทธ๋ ๊ฒ ๋์์ ๊ฒฝ์ฐ ์๊ฐ๋ณต์ก๋๊ฐ O(N^2)๊ฐ ๋๊ธฐ ๋๋ฌธ์ ๋ง์ฝ N์ด 0~100000000 M๋ 0~1000000์ ๋ ๋๋ ๊ฒฝ์ฐ์๋ ์์ฒญ๋ ํฌ๊ธฐ๊ฐ ๋์ด๋ฒ๋ฆฐ๋ค. ๊ทธ๋์ ์ ๋ฒ์ ๋ฐฐ์ ๋ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ(https://suucong.tistory.com/74)์๊ณ ๋ฆฌ์ฆ๊ณผ ํฌํฌ์ธํฐ(https://suucong.tistory.com/7..
-
[SpringBoot] SpringBoot์์ ๋ก๊ทธ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๐ปProgramming/SpringBoot 2024. 3. 3. 19:15
Logging์ด๋? - ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์ผ๋ จ์ ๊ธฐ๋ก์ธ ๋ก๊ทธ๋ฅผ ์์ฑํ๋๋ก ์์คํ ์ ์์ฑํ๋ ํ๋ ๋ก๊ทธ๋ฅผ ์ฌ์ฉํ๊ธฐ์ ์์ ํ๋ถ์ ๊ฐ๋ฐ์๋ค์ Java์์ ์ค๋ฅ๋ฅผ ํ์ธํ๊ณ ์ถ์ ๋ ๋ณดํต System.out.println() ์ฌ์ฉํ๋ค. ๋๋ง ๊ทธ๋ฌ์์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง?.. System.out.println() ํ์ง๋ง ํ์ ์์๋ ๋ฌด์กฐ๊ฑด log๋ฅผ ์ด์ฉํ์ฌ ์ค๋ฅ๋ฅผ ์ถ๋ ฅํ๋ค๊ณ ํ๋ค. ๊ทธ ์ด์ ๋ ๋ฌด์์ผ๊น? 1. ์ค๋ ๋ ์ ๋ณด, ํด๋์ค ์ด๋ฆ๊ฐ์ ๋ถ๊ฐ ์ ๋ณด๋ฅผ ํจ๊ป ๋ณผ ์ ์๊ณ , ์ถ๋ ฅ ๋ชจ์์ ์กฐ์ ํ ์ ์๋ค. 2. ๋ก๊ทธ ๋ ๋ฒจ์ ๋ฐ๋ผ ๊ฐ๋ฐ ์๋ฒ์์๋ ๋ชจ๋ ๋ก๊ทธ๋ฅผ ์ถ๋ ฅํ๊ณ , ์ด์ ์๋ฒ์์๋ ์ถ๋ ฅํ์ง ์๋ ๋ฑ ๋ก๊ทธ๋ฅผ ์ํฉ์ ๋ง๊ฒ ์กฐ์ ํ ์ ์๋ค. 3. ์์คํ ์์ ์ฝ์์๋ง ์ถ๋ ฅํ๋ ๊ฒ์ด์๋๋ผ, ํ์ผ์ด๋ ๋คํธ์ํฌ ๋ฑ ๋ก๊ทธ๋ฅผ ๋ณ๋์ ์์น์ ๋จ๊ธธ..
-
[Algorithm] Sliding Window ์๊ณ ๋ฆฌ์ฆ๐ปProgramming/Algorithm 2024. 3. 3. 16:53
๋ฌธ์ 12 15 11 20 25 10 20 19 13 15 ์ ๊ฐ์ N๊ฐ์ ์์๋ฅผ ๊ฐ์ง๊ณ ์๋ ๋ฐฐ์ด๊ณผ ๋ณ์ K๊ฐ ์ฃผ์ด์ก์ ๋ ์ฐ์๋ K๊ฐ์ ํฉ์ค์์ ๊ฐ์ฅ ํฐ ๊ฐ์ ๊ตฌํด๋ผ ์์ ์ ๋ ฅ 10 3 12 15 11 20 25 10 20 19 13 15 ์์ ์ ๋ ฅ์ ์ฒซ๋ฒ์งธ ์๋ N๊ฐ์ ๋ฐฐ์ด์ ์ค๊ฒ์ด๋ค๋ผ๋ ๊ฒ์ด๊ณ , ๋๋ฒ์งธ ์๋ K๋ฅผ ์ฃผ๋ ๊ฒ์ด๋ค. ์์ ์ถ๋ ฅ 56 ์ฒ์์ ๋ด๊ฐ ์งฐ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ค for๋ฌธ์ ์ฌ์ฉํ์๋ค. ๊ทธ๋ฌ๋๋ ๋ Timeout Error๊ฐ ๋ฐ์ํ์๋ค. ๋๋ ์ด์ค for๋ฌธ์ ์ด์ฉํด๋ ์๊ฐ๋ณต์ก๋๊ฐ O(N)์ผ๊ฑฐ๋ผ๊ณ ์๊ฐํ์๋ค. ์ ์์ ์ ๋ ฅ์ ๊ฒฝ์ฐ์๋,,, ์๊ฐํด๋ณด๋ฉด ๋ง์ฝ N์ด 100000์ธ๋ฐ, K๊ฐ 60000์ด๋ค? ๊ทธ๋ฌ๋ฉด ์๊ฐ๋ณต์ก๋๋ ๊ฑฐ์ O(N*N)์ด ๋์ด๋ฒ๋ฆฐ๋ค.. ๊ทธ๋์ ํ์์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์๋ ..
-
[Algorithm] Two pointers ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ์ฌ ๊ณตํต์์ ๊ตฌํ๊ธฐ๐ปProgramming/Algorithm 2024. 3. 2. 20:52
๋ฌธ์ A, B ๋ ๊ฐ์ ์งํฉ์ด ์ฃผ์ด์ง๋ฉด ๋ ์งํฉ์ ๊ณตํต ์์๋ฅผ ์ถ์ถํ์ฌ ์ค๋ฆ์ฐจ์์ผ๋ก ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. (๊ฐ ์งํฉ์์ ์์๋ ์ค๋ณต๋์ง ์๋๋ค.) ์ ๋ ฅ ์์ 5 1 3 9 5 2 5 3 2 5 7 8 ์ถ๋ ฅ ์์ 2 3 5 ์ผ๋จ ๋ด๊ฐ ์ง ์ฝ๋๋ ์ด์ค for๋ฌธ์ ์ด์ฉํ์ฌ n๊ณผ m์ด ๊ฐ ๋ฆฌ์คํธ์ ์์์ ์๋ผ๊ณ ํ์์ ๋ ์๊ฐ๋ณต์ก๋๊ฐ O(n*m)์ด์๋ค. ๊ทธ๋ฌ๋๋ ๋ฆฌ์คํธ๋ณ๋ก ๋ฐ์ดํฐ๊ฐ ๊ฐ 30000๊ฐ์ผ ๊ฒฝ์ฐ ํ์์์ ์ค๋ฅ๊ฐ ๋ฌ๋ค. ์ ํ์ด 1000ms์ธ๋ฐ 1700ms์ธ๊ฐ.. (๋จธ์ฑ..) ํฌํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ๋ค๋ฉด ์๊ฐ๋ณต์ก๋๊ฐ O(n+m)์ด ๋๊ฒ ๋๋ค. ์ด ๋ฐฉ๋ฒ์ผ๋ก ํ์์์ ์๋ฌ๋ฅผ ํด๊ฒฐํ ์ ์์๋ค. ์ด์ค for๋ฌธ import java.util.ArrayList; import java.util.Scann..
-
[Java] ํจ์ํ ์ธํฐํ์ด์ค์ ๋๋ค๐ปProgramming/Java 2024. 2. 23. 17:10
ํจ์ํ ์ธํฐํ์ด์ค๋? ์ถ์ ๋ฉ์๋๋ฅผ ๋ฑ 1๊ฐ๋ง ๊ฐ์ง๊ณ ์๋ ์ธํฐํ์ด์ค. SAM(Single Abstract Interface) ์ธํฐํ์ด์ค๋ผ๊ณ ๋ ํ๋ค. @FunctionalInterface๋ฅผ ์ด์ฉํ์ฌ ํํํ๋ค. @FunctionalInterface public interface RunSomething { void doIt(); } ์๋ฐ 8์ด์๋ถํฐ๋ abstract๋ฅผ ๋ช ์ํด์ฃผ์ง ์์๋ ์๋์ผ๋ก ์ถ์ ๋ฉ์๋๋ก ๊ฐ์ฃผ๋๋ค. ๋ง์ฝ @FunctionalInterface์ด๋ ธํ ์ด์ ์ ๋ถ์ด๊ณ ์ถ์ ๋ฉ์๋๋ฅผ ๋๊ฐ ์ด์ ์ถ๊ฐํ์ ๊ฒฝ์ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. static ๋ฉ์๋๊ฐ ์๋, default ๋ฉ์๋๊ฐ ์๋ ์ถ์ ๋ฉ์๋๊ฐ ํ๊ฐ์ธ ์ธํฐํ์ด์ค๋ ๋ฌด์กฐ๊ฑด "ํจ์ํ ์ธํฐํ์ด์ค"์ด๋ค. ํจ์ํ ์ธํฐํ์ด์ค๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ๋ ๊ฐ? Java..
-
[MySQL/Error] unhandled exception: 'ascii' codec can't decode byte 0xe3 in position 63: ordinal not in range(128)๐ปProgramming/Database 2024. 2. 8. 19:04
csv ํ์ผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฃ์ด์ฃผ๋ ค๊ณ ํ๋๋ฐ utf-8๋ก ๋ณํํด์ฃผ์๋๋ฐ๋ ๋ถ๊ตฌํ๊ณ ์๊พธ ์์๊ฐ์ ์ค๋ฅ๊ฐ ๋์ open /Applications/MySQLWorkbench.app ์ด์๊ฐ์ด ํฐ๋ฏธ๋์์ ์ฑ์ ์ด๊ณ , ํด์ฃผ์๋๋ ์ค๋ฅ๊ฐ ํด๊ฒฐ๋์๋ค,,, ์๋ ์ด๋ ๊ฒ์ฌ์ธ์ผ์ด๋๊ณ ,, ๋ช์๊ฐ์ด๋ ์ฐพ์๋๋ฐ.. ๋ถ๋ช utf-8์ธ๋ฐ๋ ์๊พธ ์ค๋ฅ๊ฐ๋์ ์ฌ์ค ์ด์ ๋ ๋ชจ๋ฅด๊ฒ ๋ค.
-
[Linux] ๋ฆฌ๋ ์ค์ Docker, Docker Compose ์ค์น๐ปProgramming/Linux 2024. 2. 4. 18:34
Docker ์ค์น # ์ค์น curl -fsSL https://get.docker.com/ | sh # Docker ์๋น์ค ์์ sudo systemctl start docker # Docker ์๋น์ค ์๋ ์ํ ํ์ธ sudo systemctl status docker # Docker ์๋น์ค๋ฅผ ์ด์์ฒด์ ๋ถํ ์ ์๋ ์์ํ๋๋ก ์ค์ (์ด์์ฒด์ ๊ฐ ์ค์ง๋๋ ๊ฒฝ์ฐ docker๋ ์ข ๋ฃ๋๊ธฐ ๋๋ฌธ) sudo systemctl enable docker # docker ๋ช ๋ น์ด๋ฅผ sudo ์์ด ์ฌ์ฉํ๊ธฐ ์ํด ๊ณ์ ์ docker ๊ทธ๋ฃน์ ์์ (๊ณ์ ์ฌ์ ์ ํ์) sudo usermod -aG docker $USER newgrp docker # ์ค์น ํ์ธ docker --version Docker Compose ์ค์น # Dock..
-
[Server] ssl ์ธ์ฆ์ ๋ฐ๊ธ ์ "Invalid response from http://example.com/.well-known/acme-challenge/Dv5e6y2HoKRKchN~~~: 403" ์ค๋ฅ ํด๊ฒฐ๐ปProgramming/Server 2024. 1. 24. 16:56
๋๊ฐ์ ๊ฒฝ์ฐ์๋ ์คํ๋ง๋ถํธ ํ๋ก์ ํธ ์์ nginx.conf ์ฝ๋๋ฅผ ์ง์ ์์ฑํด docker ์ปจํ ์ด๋๋ก ๋์ฐ๋ ๋ฐฉ๋ฒ์ผ๋ก nginx๋ฅผ ๋์ ๋๋ฐ, ์ด๋ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ์๊ณ , ์ ๋นจ๊ฐ ์ค ์ณ์ ธ์๋ ๊ณณ์์ ํํธ๋ฅผ ์ป์๋ค. ๊ทธ๋์ nginx.conf ํ์ผ์ ์์ ํด์คฌ๋๋ ๋ฐ๊ธ์ ์ฑ๊ณตํ์๋ค!!! server { listen 80; server_name [๋๋ฉ์ธ]; access_log off; location / { proxy_pass http://server:8080; proxy_set_header Host $host:$server_port; proxy_set_header X-Forwarded-Host $server_name; proxy_set_header X-Real-IP $remote_addr; proxy_set_..