๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€

(50)
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv.1] ์ตœ์†Œ์ง์‚ฌ๊ฐํ˜• ํ’€์ด ๋‚ ์งœ : 2025.04.25๋ฌธ์ œ ์œ ํ˜• : ์™„์ „ํƒ์ƒ‰๋ฌธ์ œ ์ œ๋ชฉ : ์ตœ์†Œ์ง์‚ฌ๊ฐํ˜•๋ฌธ์ œ ๋งํฌ : https://school.programmers.co.kr/learn/courses/30/lessons/86491Intuition๋ช…ํ•จ์˜ ๊ฐ€๋กœ,์„ธ๋กœ ํฌ๊ธฐ๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด์ด ์ฃผ์–ด์งˆ ๋•Œ, ๋ชจ๋“  ๋ช…ํ•จ์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ์ง€๊ฐ‘์˜ ํฌ๊ธฐ๋ฅผ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.๊ฐ ๋ช…ํ•จ์€ ํšŒ์ „์ด ๊ฐ€๋Šฅํ•˜๋‹ค. (๊ฐ€๋กœ, ์„ธ๋กœ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.)๊ฐ ๋ช…ํ•จ๋งˆ๋‹ค ๊ธด ์ชฝ์€ ๊ฐ€๋กœ์—, ์งง์€ ์ชฝ์€ ์„ธ๋กœ์— ๋‘”๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด๋ฉด, ๊ธด ์ชฝ ์ค‘์— ์ตœ๋Œ“๊ฐ’๊ณผ ์งง์€ ์ชฝ ์ค‘์— ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•˜๋ฉด ๋ชจ๋“  ๋ช…ํ•จ์„ ๋‹ค ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.๋ฌธ์ œ ์œ ํ˜•์€ ์™„์ „ํƒ์ƒ‰(Brute force)๋ผ๊ณ  ๋˜์–ด ์žˆ์ง€๋งŒ, ๋ช…ํ•จ์„ ํšŒ์ „ํ•œ ๋ชจ๋“  ์กฐํ•ฉ์„ ์‹œ๋„ํ•˜์ง€ ์•Š๊ณ  ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ‘ธ๋Š” ๊ฒŒ ๋” ํšจ์œจ์ ์ผ ๊ฒƒ ๊ฐ™๋‹ค.Approach๋ช…ํ•จ ํฌ..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv.1] ์˜ˆ์‚ฐ ํ’€์ด ๋‚ ์งœ : 2025.04.25๋ฌธ์ œ ์œ ํ˜• : ์—ฐ์Šต ๋ฌธ์ œ๋ฌธ์ œ ์ œ๋ชฉ : ์˜ˆ์‚ฐ๋ฌธ์ œ ๋งํฌ : https://school.programmers.co.kr/learn/courses/30/lessons/12982Intuition์ •ํ•ด์ง„ ์˜ˆ์‚ฐ์—์„œ ๋ถ€์„œ์—์„œ ์‹ ์ฒญํ•œ ๊ธˆ์•ก์„ ์ง€์›ํ•ด์ค„ ๋•Œ, ์ตœ๋Œ€ ๋ช‡ ๊ฐœ ๋ถ€์„œ์— ์ง€์›ํ•ด์ค„ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.์‹ ์ฒญํ•œ ๊ธˆ์•ก์ด ์ž‘์€ ๋ถ€์„œ๋“ค๋ถ€ํ„ฐ ์ง€์›ํ•ด์•ผ ์ตœ๋Œ€ํ•œ ๋งŽ์€ ๋ถ€์„œ์— ์ง€์›ํ•  ์ˆ˜ ์žˆ๋‹ค.ํ˜„์žฌ ์ƒํ™ฉ์—์„œ ๊ฐ€์žฅ ์ตœ์ ์ธ ์„ ํƒ์„ ๋ฐ˜๋ณตํ•ด์„œ ์ „์ฒด ์ตœ์ ํ•ด๋ฅผ ๊ตฌํ•˜๋Š” ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋กœ๋„ ๋ณผ ์ˆ˜ ์žˆ๊ฒ ๋‹ค.Approach๋ถ€์„œ์˜ ์‹ ์ฒญ ๊ธˆ์•ก์ด ๋‹ด๊ธด ๋ฐฐ์—ด d๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ d๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ, ๋ถ€์„œ์˜ ์‹ ์ฒญ ๊ธˆ์•ก(amount)์ด ๋‚จ์€ ์˜ˆ์‚ฐ(budget) ๋ณด๋‹ค ์ž‘์œผ๋ฉด ์ง€์›ํ•œ ๋ถ€์„œ ์ˆ˜(count)๋ฅผ 1..
[Go] Go ํ™˜๊ฒฝ์„ค์ • 1. Go ๋Ÿฐํƒ€์ž„ ์„ค์น˜Go ํ™ˆํŽ˜์ด์ง€์—์„œ ๋Ÿฐํƒ€์ž„์„ ์„ค์น˜ํ•œ๋‹ค.๋‚˜๋Š” M1 ๋งฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ARM64๋กœ ์„ค์น˜ํ–ˆ๋‹ค.๋ฒ„์ „ ๋ช…๋ น์–ด๋กœ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์น˜๋๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.go --version2. ํ”„๋กœ์ ํŠธ ์‹คํ–‰ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™” ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.์‹คํ–‰ ํ›„ go.mod ํŒŒ์ผ์ด ์ƒ๊ธฐ๋Š”๋ฐ, ์ด๋Š” NodeJS์—์„œ package.json, Python์˜ requirements.txt์™€ ๊ฐ™์€ ๊ฒƒ์ด๋‹ค.go mod init github.com/๊ณ„์ •๋ช…/์ €์žฅ์†Œ๋ช…main.go ํŒŒ์ผ์„ ์ž‘์„ฑํ•˜๊ณ  ๊ทธ ์•ˆ์— ๊ฐ„๋‹จํžˆ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.package main import "fmt" func main() { fmt.Println("Welcom to Nomad Coin!"); }๋‹ค์Œ ๋ช…๋ น์–ด๋กœ ์‹คํ–‰ํ•ด๋ณธ๋‹ค.go run main.go3. ์—๋””ํ„ฐ ์„ค์ •๋‚˜๋Š” VSC..
[Go] Slice, Pointer, Struct ์ •๋ฆฌ Array vs SliceArrayPython, JS์™€ ๋‹ฌ๋ฆฌ Golang์˜ array๋Š” ์ •ํ•ด์ง„ ๊ธธ์ด๊ฐ€ ์žˆ๋‹ค.// Arrayfoods := [3]string{"kimchi", "pizza", "pasta"}for _, food :=range foods { fmt.Println(food)}// ๋˜๋Š”for i := 0; i kimchi> pizza> pastaSliceslice๋Š” ๊ฐ€๋ณ€ ๊ธธ์ด์˜ ๋ฐฐ์—ด์ด๋‹ค. ๋Œ€๊ด„ํ˜ธ ์•ˆ์˜ ์ˆซ์ž๋ฅผ ์ง€์šฐ๋ฉด slice๊ฐ€ ๋œ๋‹ค.slice์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋Š” append ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋ณต์‚ฌ๋ณธ์œผ๋กœ ์›๋ณธ slice๋ฅผ ์—…๋ฐ์ดํŠธ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.// Slicefoods := []string{"kimchi", "pizza", "pasta"}fmt.Printf("%v\n", foods)> ki..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv.1] ๊ณต์› ์‚ฐ์ฑ… ํ’€์ด ๋‚ ์งœ : 2025.04.24๋ฌธ์ œ ์œ ํ˜• : ์—ฐ์Šต๋ฌธ์ œ๋ฌธ์ œ ์ œ๋ชฉ : ๊ณต์› ์‚ฐ์ฑ…๋ฌธ์ œ ๋งํฌ : https://school.programmers.co.kr/learn/courses/30/lessons/172928Intuition์ด ํ•จ์ˆ˜๋Š” ๊ณต์› park๊ณผ ์ด๋™ ๋ช…๋ น routes๋ฅผ ๋ฐ›์•„์„œ, ์‹œ์ž‘์ ์—์„œ ๋ช…๋ น์„ ๋”ฐ๋ผ ์ด๋™ํ•œ ํ›„์˜ ์ขŒํ‘œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.๊ณต์›์„ ๋ฒ—์–ด๋‚˜๊ฑฐ๋‚˜ ์žฅ์• ๋ฌผ์ด ์žˆ์œผ๋ฉด ๋ช…๋ น์„ ๋ฌด์‹œํ•˜๊ณ  ๋‹ค์Œ ๋ช…๋ น์œผ๋กœ ๋„˜์–ด๊ฐ„๋‹ค.๋ณต์žกํ•œ ์กฐ๊ฑด์„ ์ฝ”๋“œ๋กœ ์˜ฎ๊ธฐ๋Š” ๊ตฌํ˜„ ๋ฌธ์ œ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๊ฒ ๋‹ค.Approach๊ณต์›์˜ ๊ฐ€๋กœ(w), ์„ธ๋กœ(h) ๊ธธ์ด์™€ ํ˜„์žฌ ์œ„์น˜๋ฅผ ์ €์žฅํ•  ๋ณ€์ˆ˜(curr)๋ฅผ ์„ ์–ธํ•œ๋‹ค.park์˜ ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ์ˆœํšŒํ•˜์—ฌ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ์ฐพ์•„์„œ curr์— ์ €์žฅํ•œ๋‹ค.์ด๋™ ๋ฐฉํ–ฅ์„ ์„ ์–ธํ•œ๋‹ค.๊ฐ ๋ฐฉํ–ฅ ๋ฌธ์ž์— ๋Œ€ํ•ด ํ–‰๊ณผ ์—ด์˜ ๋ณ€ํ™”๋Ÿ‰์„ ์ €์žฅํ•œ๋‹ค.๋ช…๋ น..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv.2] ๋‹ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ ํ’€์ด ๋‚ ์งœ : 2025.04.22๋ฌธ์ œ ์œ ํ˜• : ์—ฐ์Šต๋ฌธ์ œ๋ฌธ์ œ ์ œ๋ชฉ : ๋‹ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ๋ฌธ์ œ ๋งํฌ : https://school.programmers.co.kr/learn/courses/30/lessons/178871Intuitionplayers ๋ฐฐ์—ด์—์„œ callings์˜ ์ˆœ์„œ๋Œ€๋กœ ๋ฐ”๋กœ ์•ž์˜ ์„ ์ˆ˜๋ฅผ ์ถ”์›”ํ•˜๊ณ , ๊ฒฝ์ฃผ๊ฐ€ ๋๋‚œ ํ›„ ์„ ์ˆ˜๋“ค์˜ ์ˆœ์œ„๋Œ€๋กœ ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•œ๋‹ค.players ๊ธธ์ด๊ฐ€ ์ตœ๋Œ€ 50,000์ด๋ฏ€๋กœ, players ๋ฐฐ์—ด ์•ˆ์—์„œ callings์—์„œ ํ˜ธ์ถœํ•œ ์„ ์ˆ˜๋ฅผ ์ตœ๋Œ€ํ•œ ๋น ๋ฅด๊ฒŒ ์ฐพ๋Š” ๊ฒƒ์ด ๊ด€๊ฑด์ด๊ฒ ๋‹ค.players ๋ฐฐ์—ด ์•ˆ์—์„œ ์ธ๋ฑ์Šค๋ฅผ ์ฐพ์•„์„œ ์„œ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ฒƒ์€ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋˜๋Š” ์ผ€์ด์Šค๊ฐ€ ์žˆ์—ˆ๋‹ค.๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด์‹œํ…Œ์ด๋ธ” ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ๋– ์˜ฌ๋ž๊ณ , JS์—์„œ๋Š” V8 ์—”์ง„ ๊ธฐ์ค€ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์— ๋Œ€ํ•œ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(1)์ธ M..
ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •์˜ํˆฌ ํฌ์ธํ„ฐ(Two Pointer) ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€, ๋ฐฐ์—ด์ด๋‚˜ ์ปฌ๋ ‰์…˜์—์„œ ๋‘ ๊ฐœ์˜ ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฒ”์œ„๋ฅผ ์กฐ์ ˆํ•ด๊ฐ€๋ฉฐ ํŠน์ •ํ•œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ถ€๋ถ„์„ ์ฐพ๋Š” ๊ธฐ๋ฒ•์ด๋‹ค.ํŠนํžˆ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์ด๋‚˜ ์ปฌ๋ ‰์…˜๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์ œ์—์„œ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.ํ•ต์‹ฌ ์•„์ด๋””์–ด๋Š” ๋ฐฐ์—ด์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ๋ถ€๋ถ„์„ ๋™์‹œ์— ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ์ด๋‹ค.์ผ๋ฐ˜์ ์œผ๋กœ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(n), ๊ณต๊ฐ„ ๋ณต์žก๋„๋Š” O(1)์ด ๋œ๋‹ค.๋Ÿฐํƒ€์ž„์„ ์ตœ์ ํ™”ํ•˜๊ณ  ๊ณต๊ฐ„์„ ์ ˆ์•ฝํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.๊ณ ๋ คํ•ด์•ผ ํ•  ์ ํฌ์ธํ„ฐ์˜ ์ดˆ๊ธฐ ์œ„์น˜ ์„ค์ •ํฌ์ธํ„ฐ๋ฅผ ์–ด๋””์„œ ์‹œ์ž‘ํ•˜๊ณ  ์–ด๋–ค ์ธ๋ฑ์Šค๋ฅผ ๋น„๊ตํ•  ๊ฒƒ์ธ๊ฐ€?ํฌ์ธํ„ฐ์˜ ์ด๋™ ๋ฐฉํ–ฅ๊ณผ ์กฐ๊ฑด๊ฐ™์€ ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ํ•  ๊ฒƒ์ธ๊ฐ€, ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ํ•  ๊ฒƒ์ธ๊ฐ€?ํฌ์ธํ„ฐ๋ฅผ ์–ธ์ œ ์›€์ง์ผ ๊ฒƒ์ธ๊ฐ€?ํฌ์ธํ„ฐ์˜ ์ค‘์ง€ ์กฐ๊ฑดํฌ์ธํ„ฐ๋ฅผ ์–ธ์ œ ๋ฉˆ์ถœ ๊ฒƒ์ธ๊ฐ€?์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐฐ์—ด์˜ ๋ฐ˜๋ณต์ด ๋๋‚  ๋•Œ๋‚˜ ๋‘ ํฌ์ธํ„ฐ๊ฐ€ ..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv.2] ์ˆซ์ž์˜ ํ‘œํ˜„ ํ’€์ด ๋‚ ์งœ : 2025.04.21๋ฌธ์ œ ์œ ํ˜• : ์—ฐ์Šต๋ฌธ์ œ๋ฌธ์ œ ์ œ๋ชฉ : ์ˆซ์ž์˜ ํ‘œํ˜„๋ฌธ์ œ ๋งํฌ : https://school.programmers.co.kr/learn/courses/30/lessons/12924 Intuition์ž์—ฐ์ˆ˜ n์„ ์—ฐ์†๋œ ์ž์—ฐ์ˆ˜์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด n์ด 15๋ผ๋ฉด, 1+2+3+4+5, 4+5+6, 7+8, 15 ์˜ ๋„ค ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.n/2๋ณด๋‹ค ํฐ ์ž์—ฐ์ˆ˜๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์ž์—ฐ์ˆ˜์˜ ํ•ฉ์€ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ์ž์—ฐ์ˆ˜์˜ ํ•ฉ์€ n/2 ๋ณด๋‹ค ์ž‘์€ ์ˆ˜๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์ ์„ ๊ณ ๋ คํ•œ๋‹ค.n ์ž์ฒด๋กœ๋งŒ ํ‘œํ˜„๋˜๋Š” ์—ฃ์ง€์ผ€์ด์Šค ํ•œ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. Approach์—ฐ์†๋œ ์ž์—ฐ์ˆ˜์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜ answer๋ฅผ ์„ ์–ธํ•œ๋‹ค.์ž๊ธฐ ์ž์‹ ์€ ๋ฌด์กฐ๊ฑด ํฌํ•จ๋˜๋ฏ€๋กœ ..