Banner

My Tech Blog (์ž๋ฐ”)

๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๐Ÿ’ก 2. ์ ‘๊ทผ๋ฐฉ์‹์ด ๋ฌธ์ œ๋Š” ๋„ˆ๋ฌด ์–ด๋ ค์›Œ์„œ ์Šค์Šค๋กœ ํ’€๊ธฐ ํž˜๋“ค์–ด์„œ ๊ฒ€์ƒ‰์˜ ๋„์›€์„ ๋ฐ›์Œ.์ฃผ์–ด์ง„ ๋ฌธ์ œ๋Š” ๊ทธ๋ž˜ํ”„ ์ด๋ก ์˜ ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ(MST, Minimum Spanning Tree) ๋ฌธ์ œ์ด๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ „์ œ์ง€์‹- Union-Find(์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ) ์ž๋ฃŒ๊ตฌ์กฐ- Kruskal's Algorithm (ํฌ๋ฃจ์Šค์นผ) ์•Œ๊ณ ๋ฆฌ์ฆ˜ Kruskal's Algorithm (ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜)ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์œ„์— ๋งํ•œ ์ตœ์†Œ์‹ ์žฅํŠธ๋ฆฌ(MST)๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋ฌธ์ œ์˜ ๋ถ„๋ฅ˜ ๋‹ต๊ฒŒ greedy์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๊ฒฐ์ •์˜ ์ˆœ๊ฐ„๋งˆ๋‹ค ์ตœ์„ ์˜ ๊ฒฐ์ •์„ ํ•จ์œผ๋กœ์„œ ์ตœ์ข…์ ์ธ ๋‹ต์„ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ชจ๋“  ์ •์ ์„ ์ตœ์†Œ ๋น„์šฉ์œผ๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ•ต์‹ฌ์€ ๋ชจ๋“  ๊ฐ„์„ ์„ ๊ฐ€์ค‘์น˜ ๊ธฐ์ค€(์—ฌ๊ธฐ์„œ๋Š” ๋‹ค๋ฆฌ ๊ฐœ์„ค..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๐Ÿ’ก 2. ์ ‘๊ทผ๋ฐฉ์‹์ž…์ถœ๋ ฅ ์˜ˆ๋กœ ์ฃผ์–ด์ง„ route ๋ฐฐ์—ด์„ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋กœ ๊ทธ๋ ค ๋ดค๋‹ค. ์ตœ์†Œํ•œ์˜ ์นด๋ฉ”๋ผ๋ฅผ ๋ฐฐ์น˜ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๊ตฌ๊ฐ„ ์ข…๋ฃŒ ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ์ฐจ๋Ÿ‰์ด ๊ตฌ๊ฐ„์—์„œ ์นด๋ฉ”๋ผ๋ฅผ ๋‹จ ํ•œ ๋ฒˆ๋งŒ์ด๋ผ๋„ ๋งŒ๋‚˜๋ฉด ๋จ์ข…๋ฃŒ ์ง€์ ์—์„œ ๋‹ค์Œ ๊ตฌ๊ฐ„๊ณผ ๊ฒน์น˜๊ฒŒ ๋˜๋ฏ€๋กœ ์ตœ์†Œํ•œ์˜ ์นด๋ฉ”๋ผ๋ฅผ ๋ฐฐ์น˜๊ฐ€๋Šฅ์นด๋ฉ”๋ผ ๋ฐฐ์น˜๋Š” ๋„๋กœ์˜ ๊ฐ€์žฅ ์™ผ์ชฝ ๋๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•˜๋ฉฐ ์‹œ์ž‘๋œ๋‹ค.์ž…์ถœ๋ ฅ ์˜ˆ์‹œ์—์„œ MIN_VALUE์ธ -20 ์ง€์ ๋ถ€ํ„ฐ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ฐ€๋ฉฐ ์ข…๋ฃŒ๊ตฌ๊ฐ„๊ณผ ์‹œ์ž‘๊ตฌ๊ฐ„์ด ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์— ์นด๋ฉ”๋ผ๊ฐ€ ๋ฐฐ์น˜๋œ๋‹ค.๊ตฌ๊ฐ„ ์ค‘ ๊ฐ€์žฅ ์ฒ˜์Œ์œผ๋กœ ๋งŒ๋‚˜๋Š” ์ข…๋ฃŒ ์œ„์น˜๋Š” -15์ด๋‹ค.๋”ฐ๋ผ์„œ ์ด ์œ„์น˜์— ์ฒซ ๋ฒˆ์งธ ์นด๋ฉ”๋ผ๋ฅผ ์„ค์น˜ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  -13์ง€์ ์—์„œ ํ˜„์žฌ ๊ตฌ๊ฐ„๊ณผ ๋‹ค์Œ ๊ตฌ๊ฐ„์ด ๋งŒ๋‚˜์ง€๋งŒ ์ด๋ฏธ ํ•ด๋‹น ๊ตฌ๊ฐ„์—๋Š” ์นด๋ฉ”๋ผ๊ฐ€ ์„ค์น˜ ์™„๋ฃŒ ๋˜์—ˆ์œผ๋ฏ€๋กœ ์Šคํ‚ตํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ ๊ตฌ๊ฐ„์ธ [-..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๐Ÿ’ก 2. ์ ‘๊ทผ๋ฐฉ์‹ ๋ฌธ์ œ ์ œํ•œ์กฐ๊ฑด1. ํ•œ ๋ฒˆ์— ์ตœ๋Œ€ ๋‘๋ช…๊นŒ์ง€ ๋ณดํŠธ์— ํƒœ์šธ ์ˆ˜ ์žˆ์Œ2. ๋ชธ๋ฌด๊ฒŒ ํ•ฉ์ด `limit` ์ดํ•˜์—ฌ์•ผ ํ•จ ๋”ฐ๋ผ์„œ ์ตœ์†Œ๋ณดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ „๋žต์„ ์งœ๋ ค๋ฉด ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜์—ฌ ๊ฐ€์žฅ ๊ฐ€๋ฒผ์šด ์‚ฌ๋žŒ + ๊ฐ€์žฅ ๋ฌด๊ฑฐ์šด ์‚ฌ๋žŒ ์กฐํ•ฉ์„ ์ง์ง€์–ด์•ผ ํ•จ.๊ฐ€์žฅ ํฐ ๋ชธ๋ฌด๊ฒŒ๋ฅผ ๊ฐ€์ง„ ์‚ฌ๋žŒ์„ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์ฒ˜๋ฆฌํ•˜๋ฉด์„œ๋„ ๋ณดํŠธ ์‚ฌ์šฉ์„ ์ค„์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.๋งŒ์•ฝ ๋‘ ์‚ฌ๋žŒ์˜ ๋ชธ๋ฌด๊ฒŒ ํ•ฉ์ด limit ์ดํ•˜๋ผ๋ฉด, ํ•œ ๋ณดํŠธ์— ํƒœ์šธ ์ˆ˜ ์žˆ๋‹ค. ํ•ฉ์ด limit์„ ์ดˆ๊ณผํ•œ๋‹ค๋ฉด, ๋ฌด๊ฑฐ์šด ์‚ฌ๋žŒ์„ ๋ฐ˜๋“œ์‹œ ํ•œ ๋ช…๋งŒ ๋ณดํŠธ์— ํƒœ์›Œ์•ผ ํ•œ๋‹ค.์ด๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ๋‚จ์€ ์‚ฌ๋žŒ๋“ค์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์„ ์˜ ์„ ํƒ์ด๋‹ค. โญ 3. ์ •๋‹ต์ฝ”๋“œimport java.util.*;class Solution {    public int solution(i..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๐Ÿ’ก 2. ์ ‘๊ทผ๋ฐฉ์‹์™„์ „ํƒ์ƒ‰์€ ์•ˆ๋˜๋Š” ์ด์œ ๋ฌธ์ œ์—์„œ number≤1,000,000์œผ๋กœ ์ตœ๋Œ€ ๋ฐฑ๋งŒ์ž๋ฆฌ ์ˆซ์ž๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค. number ๊ฐ’์ด ๋„ˆ๋ฌด ์ปค์„œ ์™„์ „ ํƒ์ƒ‰์€ ํ˜„์‹ค์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. k๋Š” 1 ์ด์ƒ len(number) - 1 ์ดํ•˜์˜ˆ๋ฅผ ๋“ค์–ด, ์ˆซ์ž๊ฐ€ 1,000,000์ž๋ฆฌ๋ผ๋ฉด ์ตœ๋Œ€ 999,999๊ฐœ์˜ ์ˆซ์ž๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ํ•œ๋‹ค. ์™œ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์จ์•ผ ํ•˜๋Š”๊ฐ€?์ˆซ์ž๋ฅผ ํ•œ ๋ฒˆ๋งŒ ์ˆœํšŒํ•˜๋ฉด์„œ ์ ์ ˆํ•œ ์ˆซ์ž๋ฅผ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•œ๋‹ค. ์ˆซ์ž๊ฐ€ ๋ฐฑ๋งŒ ์ž๋ฆฌ์—ฌ๋„ 1,000,000๋ฒˆ์˜ ๋น„๊ต๋งŒ ํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์ด ์ข‹๋‹ค.๋ฌธ์ œ์˜ ํ•ต์‹ฌ = '์•ž์—์„œ๋ถ€ํ„ฐ ๋’ค๋กœ ํฐ ์ˆซ์ž ์œ ์ง€'์•ž์ž๋ฆฌ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ์ˆซ์ž๋ฅผ ์„ ํƒํ•˜๋ฉฐ ํฐ ์ˆซ์ž๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ’€์–ด์•ผ ํ•œ๋‹ค.๋‚˜๋Š” ์ด์ค‘ํฌ๋ฌธ์œผ๋กœ ํ’€์—ˆ๋Š”๋ฐ ๋‹ค๋ฅธ ๋ถ„๋“ค์ด ํ’€์ดํ•œ ๊ฑธ ๋ณด๋‹ˆ ์Šคํƒ์„ ์‚ฌ์šฉํ•ด ๋”..
๐Ÿ“‘ 1. ๋Œ€์†Œ๋ฌธ์ž ๋ฐ”๊ฟ”์„œ ์ถœ๋ ฅํ•˜๊ธฐimport java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); System.out.println(swapCase(a)); } public static String swapCase(String str) { StringBuilder result = new StringBuilder(); for(char c:str.toCharArray()) { if(Character.isUpperCase(c) ) { resu..
์ž๋ฐ” JDBC๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•  ๋•Œ ์‚ฌ์šฉํ•œ ์ž์›์€ `connection.close()` ์ฒ˜๋Ÿผ `close()` ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋‹ซ์•„ ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ try with resources ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ณ„๋„๋กœ ์ž์›ํ•ด์ œ๋ฅผ ์•ˆ ํ•ด ์ค˜๋„ ๋œ๋‹ค. try ๊ตฌ๋ฌธ์—์„œ ์ž์›์„ ์„ ์–ธํ•˜๋ฉด ์ž๋™์œผ๋กœ ํ•ด์ œ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.์ด์ฒ˜๋Ÿผ try-with-resources๋Š” ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ๊ฐ€ ์ค‘์š”ํ•œ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ์ฝ”๋“œ ํ’ˆ์งˆ์„ ๋†’์ด๋Š” ๋งค์šฐ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์ด๋‹ค. ํŒŒ์ผ ์ž…์ถœ๋ ฅ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ, ๋„คํŠธ์›Œํฌ ์†Œ์ผ“ ๋“ฑ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ ํ™œ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ธฐ๋ณธ์‚ฌ์šฉ๋ฒ•์ฝ”๋“œ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด try-with-resources์˜ ๊ธฐ๋ณธ ํ˜•์‹์€ try๋ฌธ ์•ˆ์—์„œ ์ž์›์„ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์ด๋‹ค.try (๋ฆฌ์†Œ์Šค_ํƒ€์ž… ๋ฆฌ์†Œ์Šค_์ด๋ฆ„ = new ๋ฆฌ์†Œ์Šค_ํƒ€์ž…()) {..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๐Ÿ’ก 2. ์ ‘๊ทผ๋ฐฉ์‹๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ๋งค๊ฐœ๋ณ€์ˆ˜- ์ˆ˜์—ด์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ ๋ฐฐ์—ด `sequence`- ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ `k` ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ์‹œ์ž‘ ์ธ๋ฑ์Šค์™€ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๋ฅผ ๋ฐฐ์—ด๋กœ returnํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฌธ์ œ ํˆฌํฌ์ธํ„ฐ, ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ‘ผ๋‹ค.- start: ์œˆ๋„์šฐ์˜ ์‹œ์ž‘ ์ธ๋ฑ์Šค- end: ์œˆ๋„์šฐ์˜ ๋ ์ธ๋ฑ์Šค (or ๋‹ค์Œ ํƒ์ƒ‰ํ•  ์œ„์น˜) `ํˆฌํฌ์ธํ„ฐ`ํ•˜๋‚˜์˜ ํฌ์ธํ„ฐ๋Š” ๋ฐฐ์—ด์˜ ์‹œ์ž‘์„, ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๋ฐฐ์—ด์˜ ๋์„ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ ์‹œ์ž‘ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ตฌ๊ฐ„์„ ์ฐพ๋Š”๊ฒƒ์ด๋‹ค.  `์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜`๋ถ€๋ถ„ ๋ฐฐ์—ด, ๋ถ€๋ถ„ ๋ฌธ์ž์—ด ๋ฌธ์ œ์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ตฌ๊ฐ„์„ ์ฐพ๊ฑฐ๋‚˜, ๊ณ ์ •๋œ ํฌ๊ธฐ ๊ตฌ๊ฐ„์˜ ํ•ฉ๊ณ„, ์ตœ๋Œ€๊ฐ’, ์ตœ์†Œ๊ฐ’ ๋“ฑ์„ ๊ตฌํ•  ๋•Œ ์œ ..
1. write.jsp ๊ธ€์“ฐ๊ธฐ ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ ๋จผ์ € ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ ํŽ˜์ด์ง€ `write.jsp`๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ๋ ค๊ณ  ํ•œ๋‹ค.`bbs.jsp`๋ฅผ ๋ณต์‚ฌํ•ด์„œ ๋ถ™์—ฌ ๋„ฃ๊ณ  ์ค‘๊ฐ„ ๋ถ€๋ถ„๋งŒ ์ˆ˜์ • ํ•ด ์ค„ ๊ฒƒ์ด๋‹ค. nav๋ฐ” ์•„๋ž˜ ๋ถ€๋ถ„์— ์ด๋ ‡๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑBootstrap5 ์ด์šฉํ–ˆ๋‹ค. โšก `mt-5` margin-top: 5rem;  โšก ``ํƒœ๊ทธ์— `required` ์†์„ฑ ๋„ฃ์œผ๋ฉด ๋ธŒ๋ผ์šฐ์ €์—์„œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ•จ. ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅ ์•ˆ ํ•œ ์ฑ„๋กœ submit ํ•˜๋ฉด `์ด ์ž…๋ ฅ๋ž€์„ ์ž‘์„ฑํ•˜์„ธ์š”.` ๋ผ๋Š” ๊ฒฝ๊ณ  ๋ฉ”์„ธ์ง€๋ฅผ ๋„์šด๋‹ค.  โšก `form-control` ํด๋ž˜์Šค Bootstrap์—์„œ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค ์ค‘ ํ•˜๋‚˜๋กœ, ์ž…๋ ฅ ํ•„๋“œ์˜ ์Šคํƒ€์ผ์„ ์‰ฝ๊ฒŒ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋จ.์ด๊ฑฐ ์“ฐ๋ฉด ์ž…๋ ฅ ํ•„๋“œ(input, textarea, select ๋“ฑ)๊ฐ€ ๊ธฐ๋ณธ..
์ธ์ ˆ๋ฏธ์˜€๋˜๊ฒƒ
'์ž๋ฐ”' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก
์ƒ๋‹จ์œผ๋กœ