๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ119

[gqlgen] gin.Context ์ด์šฉํ•˜๊ธฐ ๋ฌธ์ œ gin์„ graphql(gqlgen)์˜ router๋กœ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ gin.Context์— ๋‹ด์•„๋†“์€ ๊ฐ’๋“ค์ด, graphql resolver์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ctx(context.Context)์— ๋‹ด๊ฒจ์žˆ์ง€ ์•Š์•˜๋‹ค. gin.Context์— key-value๋กœ ์ €์žฅํ•œ ๊ฐ’์„ resolver์˜ ctx.Value("key")๋กœ ์ ‘๊ทผํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ์ƒํ™ฉ gqlgen ๊ณต์‹ ๋ฌธ์„œ์—์„œ ์ œ๊ณตํ•˜๋Š” example์— gin.Context๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์•ˆ๋‚ด๋˜์–ด ์žˆ๋‹ค. ๋งํฌ ํ•˜์ง€๋งŒ, ์ด ๋ฐฉ๋ฒ•์€ context.Context์— gin.Context๋ฅผ ๊ทธ๋Œ€๋กœ ๋‹ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ๊ฐ์˜ resolver์—์„œ ๋งค๋ฒˆ ์•„๋ž˜์˜ ์ž‘์—…์„ ํ•ด์ค˜์•ผ ํ•œ๋‹ค. 1. context.Context์—์„œ gin.Context ๊บผ๋‚ด๊ธฐ 2. gin.Cont.. 2023. 8. 9.
[C++/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์•ผ๊ทผ ์ง€์ˆ˜ ๋ฌธ์ œ https://programmers.co.kr/learn/courses/30/lessons/12927# ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์•ผ๊ทผ ์ง€์ˆ˜ ํšŒ์‚ฌ์› Demi๋Š” ๊ฐ€๋”์€ ์•ผ๊ทผ์„ ํ•˜๋Š”๋ฐ์š”, ์•ผ๊ทผ์„ ํ•˜๋ฉด ์•ผ๊ทผ ํ”ผ๋กœ๋„๊ฐ€ ์Œ“์ž…๋‹ˆ๋‹ค. ์•ผ๊ทผ ํ”ผ๋กœ๋„๋Š” ์•ผ๊ทผ์„ ์‹œ์ž‘ํ•œ ์‹œ์ ์—์„œ ๋‚จ์€ ์ผ์˜ ์ž‘์—…๋Ÿ‰์„ ์ œ๊ณฑํ•˜์—ฌ ๋”ํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค. Demi๋Š” N์‹œ๊ฐ„ ๋™์•ˆ ์•ผ๊ทผ ํ”ผ๋กœ๋„ programmers.co.kr ํšŒ์‚ฌ์› Demi๋Š” ๊ฐ€๋”์€ ์•ผ๊ทผ์„ ํ•˜๋Š”๋ฐ์š”, ์•ผ๊ทผ์„ ํ•˜๋ฉด ์•ผ๊ทผ ํ”ผ๋กœ๋„๊ฐ€ ์Œ“์ž…๋‹ˆ๋‹ค. ์•ผ๊ทผ ํ”ผ๋กœ๋„๋Š” ์•ผ๊ทผ์„ ์‹œ์ž‘ํ•œ ์‹œ์ ์—์„œ ๋‚จ์€ ์ผ์˜ ์ž‘์—…๋Ÿ‰์„ ์ œ๊ณฑํ•˜์—ฌ ๋”ํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค. Demi๋Š” N์‹œ๊ฐ„ ๋™์•ˆ ์•ผ๊ทผ ํ”ผ๋กœ๋„๋ฅผ ์ตœ์†Œํ™”ํ•˜๋„๋ก ์ผํ•  ๊ฒ๋‹ˆ๋‹ค. Demi๊ฐ€ 1์‹œ๊ฐ„ ๋™์•ˆ ์ž‘์—…๋Ÿ‰ 1๋งŒํผ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•  ๋•Œ, ํ‡ด๊ทผ๊นŒ์ง€ ๋‚จ์€ N ์‹œ๊ฐ„๊ณผ ๊ฐ ์ผ์— ๋Œ€ํ•œ ์ž‘์—…๋Ÿ‰ w.. 2022. 4. 5.
[C++/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ˆซ์ž ๊ฒŒ์ž„ ๋ฌธ์ œ https://programmers.co.kr/learn/courses/30/lessons/12987 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ˆซ์ž ๊ฒŒ์ž„ xx ํšŒ์‚ฌ์˜ 2xN๋ช…์˜ ์‚ฌ์›๋“ค์€ N๋ช…์”ฉ ๋‘ ํŒ€์œผ๋กœ ๋‚˜๋ˆ  ์ˆซ์ž ๊ฒŒ์ž„์„ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ํŒ€์„ ๊ฐ๊ฐ AํŒ€๊ณผ BํŒ€์ด๋ผ๊ณ  ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ˆซ์ž ๊ฒŒ์ž„์˜ ๊ทœ์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋จผ์ € ๋ชจ๋“  ์‚ฌ์›์ด ๋ฌด์ž‘์œ„๋กœ programmers.co.kr ํ’€์ด A์™€ B๋ฅผ ๋ชจ๋‘ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. a_idx, b_max_idx๋ฅผ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ A[a_idx] vs B[b_max_idx] ์ด๋ ‡๊ฒŒ ์ˆœ์ฐจ์ ์œผ๋กœ ๋Œ€๊ฒฐ์„ ํ•ด ๋‚˜๊ฐˆ๊ฑด๋ฐ, 1. A๊ฐ€ ์ด๊ธฐ๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด, B์˜ ๊ฐ€์žฅ ์ž‘์€ ์›์†Œ๋ฅผ ๋‚ธ๋‹ค๊ณ  ์ƒ๊ฐ (์–ด์ฐจํ”ผ ์งˆ ๋ฐ”์— ์ œ์ผ ์ž‘์€ ๊ฑธ๋กœ ์ง€์ž!) 2. B๊ฐ€ ์ด๊ธฐ๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด, B[b_max_idx]๋ฅผ ๋‚ธ๋‹ค๊ณ .. 2022. 3. 29.
[Go] go-socket.io์˜ Redis Adapter socket.io์—์„œ๋Š” redis adapter๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Adapter? https://socket.io/docs/v4/adapter/ ์ •์˜ Adapter๋Š” client์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ ํ˜น์€ ์ „์ฒด client์—๊ฒŒ event๋ฅผ broadcastํ•˜๋Š” server-side component์ด๋‹ค. ์™œ ํ•„์š”ํ• ๊นŒ? ๊ธฐ๋ณธ์ ์œผ๋กœ socket.io์—์„œ in-memory adapter๊ฐ€ broadcast๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ, socket.io ์„œ๋ฒ„๊ฐ€ ์—ฌ๋Ÿฌ๋Œ€๋กœ ๋ถ„์‚ฐ๋˜์–ด์žˆ์„ ๋•Œ, in-memory adapter๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๋‘ ๊ฐœ์˜ socket.io ์„œ๋ฒ„๊ฐ€ ์žˆ์„ ๋•Œ, in-memory adapter๋ฅผ ์ด์šฉํ•˜๋ฉด server A์—์„œ server B์— ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋Š” client๋“ค์—๊ฒŒ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ด์ค„ ์ˆ˜ ์—†.. 2022. 3. 3.
[C++/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํŒŒ๊ดด๋˜์ง€ ์•Š์€ ๊ฑด๋ฌผ ๋ฌธ์ œ https://programmers.co.kr/learn/courses/30/lessons/92344 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํŒŒ๊ดด๋˜์ง€ ์•Š์€ ๊ฑด๋ฌผ [[5,5,5,5,5],[5,5,5,5,5],[5,5,5,5,5],[5,5,5,5,5]] [[1,0,0,3,4,4],[1,2,0,2,3,2],[2,1,0,3,1,2],[1,0,1,3,3,1]] 10 [[1,2,3],[4,5,6],[7,8,9]] [[1,1,1,2,2,4],[1,0,0,1,1,2],[2,2,0,2,0,100]] 6 programmers.co.kr ๋ฌธ์ œ๊ฐ€ ๊ธธ๋‹ค.. ์š”์•ฝํ•˜๋ฉด, NxM์˜ ์ดˆ๊ธฐ borad์—์„œ (r1, c1) ~(r2, c2)์˜ ์ž„์˜์˜ ๊ตฌ๊ฐ„?๋ถ€๋ถ„์„ ๊ณต๊ฒฉ(-)ํ–ˆ๋‹ค๊ฐ€ ํšŒ๋ณต(+)ํ–ˆ๋‹ค๊ฐ€ ํ•˜๋ฉด์„œ ์ตœ์ข…์ ์œผ๋กœ ๊ฐ’์ด 0๋ณด๋‹ค ํฐ ์นธ์˜ ๊ฐฏ์ˆ˜๋ฅผ ์„ธ๋ฉด ๋˜๋Š” ๋ฌธ.. 2022. 3. 1.
[C++/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ด์ค‘์šฐ์„ ์ˆœ์œ„ํ ๋ฌธ์ œ https://programmers.co.kr/learn/courses/30/lessons/42628 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ด์ค‘์šฐ์„ ์ˆœ์œ„ํ programmers.co.kr ์ด์ค‘ ์šฐ์„ ์ˆœ์œ„ ํ๋Š” ๋‹ค์Œ ์—ฐ์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์–ด ์„ค๋ช… I ์ˆซ์ž ํ์— ์ฃผ์–ด์ง„ ์ˆซ์ž๋ฅผ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค. D 1 ํ์—์„œ ์ตœ๋Œ“๊ฐ’์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. D -1 ํ์—์„œ ์ตœ์†Ÿ๊ฐ’์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์ด์ค‘ ์šฐ์„ ์ˆœ์œ„ ํ๊ฐ€ ํ•  ์—ฐ์‚ฐ operations๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋ชจ๋“  ์—ฐ์‚ฐ์„ ์ฒ˜๋ฆฌํ•œ ํ›„ ํ๊ฐ€ ๋น„์–ด์žˆ์œผ๋ฉด [0,0] ๋น„์–ด์žˆ์ง€ ์•Š์œผ๋ฉด [์ตœ๋Œ“๊ฐ’, ์ตœ์†Ÿ๊ฐ’]์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด์ฃผ์„ธ์š”. ์ œํ•œ์‚ฌํ•ญ operations๋Š” ๊ธธ์ด๊ฐ€ 1 ์ด์ƒ 1,000,000 ์ดํ•˜์ธ ๋ฌธ์ž์—ด ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. operations์˜ ์›์†Œ๋Š” ํ๊ฐ€ ์ˆ˜.. 2022. 3. 1.
[go/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์„ฌ ์—ฐ๊ฒฐํ•˜๊ธฐ ๋ฌธ์ œ https://programmers.co.kr/learn/courses/30/lessons/42861?language=go ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์„ฌ ์—ฐ๊ฒฐํ•˜๊ธฐ 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr n๊ฐœ์˜ ์„ฌ ์‚ฌ์ด์— ๋‹ค๋ฆฌ๋ฅผ ๊ฑด์„คํ•˜๋Š” ๋น„์šฉ(costs)์ด ์ฃผ์–ด์งˆ ๋•Œ, ์ตœ์†Œ์˜ ๋น„์šฉ์œผ๋กœ ๋ชจ๋“  ์„ฌ์ด ์„œ๋กœ ํ†ตํ–‰ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“ค ๋•Œ ํ•„์š”ํ•œ ์ตœ์†Œ ๋น„์šฉ์„ return ํ•˜๋„๋ก solution์„ ์™„์„ฑํ•˜์„ธ์š”. ๋‹ค๋ฆฌ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ๊ฑด๋„ˆ๋”๋ผ๋„, ๋„๋‹ฌํ•  ์ˆ˜๋งŒ ์žˆ์œผ๋ฉด ํ†ตํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ๋ด…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด A ์„ฌ๊ณผ B ์„ฌ ์‚ฌ์ด์— ๋‹ค๋ฆฌ๊ฐ€ ์žˆ๊ณ , B ์„ฌ๊ณผ C ์„ฌ ์‚ฌ์ด์— ๋‹ค๋ฆฌ๊ฐ€ ์žˆ์œผ๋ฉด A ์„ฌ๊ณผ C ์„ฌ์€ ์„œ๋กœ ํ†ตํ–‰ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ œํ•œ์‚ฌํ•ญ ์„ฌ์˜ ๊ฐœ์ˆ˜ n์€ 1 ์ด์ƒ 100 ์ด.. 2022. 2. 8.
[C++/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฒฝ์ฃผ๋กœ ๊ฑด์„ค (2020 ์นด์นด์˜ค ์ธํ„ด์‹ญ) ๋ฌธ์ œ https://programmers.co.kr/learn/courses/30/lessons/67259 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ฒฝ์ฃผ๋กœ ๊ฑด์„ค [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr ๋ฌธ์ œ๋ฅผ ์š”์•ฝํ•˜์ž๋ฉด, ์ •์‚ฌ๊ฐํ˜• ๋ชจ์–‘์˜ board์—์„œ (0, 0)์—์„œ (N-1, N-.. 2022. 1. 18.
[C++/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‹จ์–ด ๋ณ€ํ™˜ ๋ฌธ์ œ https://programmers.co.kr/learn/courses/30/lessons/43163 ๋‘ ๊ฐœ์˜ ๋‹จ์–ด begin, target๊ณผ ๋‹จ์–ด์˜ ์ง‘ํ•ฉ words๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ๊ทœ์น™์„ ์ด์šฉํ•˜์—ฌ begin์—์„œ target์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฐ€์žฅ ์งง์€ ๋ณ€ํ™˜ ๊ณผ์ •์„ ์ฐพ์œผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 1. ํ•œ ๋ฒˆ์— ํ•œ ๊ฐœ์˜ ์•ŒํŒŒ๋ฒณ๋งŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 2. words์— ์žˆ๋Š” ๋‹จ์–ด๋กœ๋งŒ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด begin์ด "hit", target๊ฐ€ "cog", words๊ฐ€ ["hot","dot","dog","lot","log","cog"]๋ผ๋ฉด "hit" -> "hot" -> "dot" -> "dog" -> "cog"์™€ ๊ฐ™์ด 4๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ๋‹จ์–ด begin, target๊ณผ ๋‹จ์–ด์˜ .. 2022. 1. 12.
๋ฐ˜์‘ํ˜•