Banner

My Tech Blog (์ฝ”๋“œ)

์—‘์…€์„ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด ํ˜„์žฌ ์ปค์„œ๊ฐ€ ์–ด๋””์— ์žˆ๋Š”์ง€ ์ฐพ๊ธฐ ์–ด๋ ค์šธ๋•Œ๊ฐ€ ๋งŽ๋‹ค. ์…€์„ ์„ ํƒํ•˜๋ฉด ํ•ด๋‹น ์…€์˜ ํ–‰๊ณผ ์—ด์— ์ƒ‰์ƒ์ด ์ž…ํ˜€์ง€๋Š” ํ•˜์ด๋ผ์ดํŠธ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค์–ด๋ณด์ž.์ฐธ๊ณ ๋กœ ์—‘์…€ 2007 ์ด์ƒ์—์„œ๋งŒ ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. โญ ์กฐ๊ฑด๋ถ€ ์„œ์‹ ํ™œ์šฉํ•˜๊ธฐโญ ๋งคํฌ๋กœ ํ™œ์šฉํ•˜๊ธฐ 1. ์กฐ๊ฑด๋ถ€ ์„œ์‹๋จผ์ € ํด๋ฆญํ•˜๋ฉด ํ•˜์ด๋ผ์ดํŠธ ํšจ๊ณผ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ํ•  ์˜์—ญ ์ง€์ •ํ•˜๊ธฐ ctrl + A๋กœ ์ „์ฒด์˜์—ญ ์„ ํƒํ•ด๋„ ๋˜๊ณ  ํŠน์ • ์˜์—ญ์„ ๋“œ๋ž˜๊ทธํ•ด๋„ ๋œ๋‹ค. ์ƒ๋‹จ ๋ฆฌ๋ณธ๋ฉ”๋‰ด > ์กฐ๊ฑด๋ถ€์„œ์‹ > ์ƒˆ ๊ทœ์น™ > ์ˆ˜์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ์‹์„ ์ง€์ •ํ•  ์…€ ๊ฒฐ์ • ์„œ์‹ ์ง€์ • ๋ž€์— ์•„๋ž˜ ํ•จ์ˆ˜ ๋ณต์‚ฌํ•ด์„œ ๋ถ™์—ฌ๋„ฃ๊ธฐ=OR(CELL("ROW")=ROW(),CELL("COL")=COLUMN()) ์„œ์‹(F) ํด๋ฆญ - ์ฑ„์šฐ๊ธฐํƒญ์—์„œ ์›ํ•˜๋Š” ์ƒ‰์ƒ ์ง€์ • (๋‚˜๋Š” ์—ฐํ•œ ..
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ ๊ฐ„๋‹จํžˆ ํฌ์ŠคํŒ…ํ•˜๋ ค๊ณ  ์‹ฌํ”Œํ•œ To Do List๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์•˜๋‹ค!    1. ๊ตฌ๊ธ€ํฐํŠธ, ์Šคํƒ€์ผ์‹œํŠธ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—ฐ๊ฒฐ- `style.css`์™€ `script.js` ์—ฐ๊ฒฐ- ๊ตฌ๊ธ€ ํฐํŠธ `Poppins`  ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ Embed Code๋ฅผ 2.  ์ „์ฒด  ์ ์šฉ๋  css ์„ค์ • & container์— ๋ฐฐ๊ฒฝ ์ถ”๊ฐ€โšก  ํฐํŠธ๋Š” ๊ตฌ๊ธ€ ํฐํŠธ `Poppins` ๋กœ ์„ค์ • โšก `box-sizing: border-box;`์š”์†Œ์˜ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ `ํŒจ๋”ฉ(padding)`๊ณผ `ํ…Œ๋‘๋ฆฌ(border)`๊นŒ์ง€ ํฌํ•จํ•˜๋„๋ก ์„ค์ •ํ•˜๋Š” ์†์„ฑ. ๊ธฐ๋ณธ์ ์œผ๋กœ CSS์—์„œ box-sizing์˜ ๊ธฐ๋ณธ๊ฐ’์€ `content-box`์ด๋‹ค. `content-box`๋Š” ์š”์†Œ์˜ `width`์™€ `height`๊ฐ€ ์ฝ˜ํ…์ธ  ์˜์—ญ..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๐Ÿ’ก 2. ์ ‘๊ทผ๋ฐฉ์‹๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ๊ฒƒn : ์ „์ฒด ํ•™์ƒ์˜ ์ˆ˜lost : ์ฒด์œก๋ณต ๋„๋‚œ๋‹นํ•œ ํ•™์ƒ๋“ค์˜ ๋ฒˆํ˜ธ๋“ค  (๋ฐฐ์—ด) reserve : ์—ฌ๋ฒŒ ๊ฐ€์ ธ์˜จ ํ•™์ƒ ๋ฒˆํ˜ธ๋“ค (๋ฐฐ์—ด)์ฒด์œก๋ณต์€ ์•ž,๋’ค ๋ฒˆํ˜ธ ํ•™์ƒ ์—๋งŒ ๋นŒ๋ ค์ค„ ์ˆ˜ ์žˆ์Œ.๋„๋‚œ ๋‹นํ•œ ํ•™์ƒ๋“ค์€ ์—ฌ๋ถ„์ด ์—†์–ด์„œ ์ฒด์œก๋ณต ๋นŒ๋ ค์ค„ ์ˆ˜ ์—†์Œ.1. `lost`์™€ `reserve` ๋ฐฐ์—ด ์ •๋ ฌ 2. ์ฒด์œก์ˆ˜์—…์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ํ•™์ƒ์˜ ์ˆ˜ = ์ฒด์œก๋ณต์ด ์žˆ๊ฑฐ๋‚˜ ๋นŒ๋ฆด ์ˆ˜ ์žˆ๋Š” ํ•™์ƒ๋“ค์˜ ์ˆ˜ `์ฒด์œก๋ณต์„ ๋„๋‚œ ๋‹นํ•˜์ง€ ์•Š์€ ํ•™์ƒ์˜ ์ˆ˜` + `๋„๋‚œ๋‹นํ–ˆ์ง€๋งŒ ์˜ˆ๋น„๋กœ ๋“ค๊ณ  ์˜จ ํ•™์ƒ์˜ ์ˆ˜` + `๋„๋‚œ๋‹นํ–ˆ์ง€๋งŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ฆด ์ˆ˜ ์žˆ๋Š” ํ•™์ƒ์˜ ์ˆ˜`์ด ๋ชจ๋“  ํ•™์ƒ๋“ค์˜ ์ˆ˜๋ฅผ ๋ˆ„์ ํ•ด์„œ answer ๋ณ€์ˆ˜์— ๋‹ด์•„ ์ค€๋‹ค.  โœ… ์ฒด์œก๋ณต์„ ๋„๋‚œ ๋‹นํ•˜์ง€ ์•Š์€ ํ•™์ƒ์˜ ์ˆ˜= ์ „์ฒด ํ•™์ƒ์˜ ์ˆ˜ - ์ฒด์œก๋ณต์„ ๋„๋‚œ๋‹นํ•œ ํ•™..
๐Ÿ“ŒGIT checkout VS resetโšก checkout์€ head๋ฅผ ๋ฐ”๊พผ๋‹ค.git checkout A : ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ๋Š” A๋ฒ„์ „์ด๋œ๋‹ค.์‹œ๊ฐ„์—ฌํ–‰์„ ํ•˜๋Š” ๊ฒƒ   git checkout main : ํ—ค๋“œ๋ฅผ ๋ฉ”์ธ์œผ๋กœ ๋ฐ”๊พผ๋‹ค.์›Œํ‚น๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋‹ค์‹œ B์™€ ๊ฐ™์•„์ง„๋‹ค. ์‹œ๊ฐ„์—ฌํ–‰์„ ๋๋‚ธ ๊ฒƒ   โšก reset์€ head์˜ branch๋ฅผ ๋ฐ”๊พผ๋‹ค.git reset A : head๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” branch์ธ main์„ A๋กœ ๋ฐ”๊พผ๋‹ค.B ๋ฒ„์ „์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ.  git reset B : main์ด B๋ฅผ ๋‹ค์‹œ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ํ•œ๋‹ค.B ๋ฒ„์ „์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ. B๋Š” ๋ณต์›๋œ ๊ฒƒ. ์ด ์ƒํƒœ์—์„œ git checkout B ํ•˜๋ฉด ์ด ์ƒํƒœ์—์„œ ๋‹ค์‹œ git reset A ํ•˜๋ฉด?ํ˜„์žฌ head๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” branch๋Š” ์—†๊ธฐ ๋•Œ๋ฌธ์— head๊ฐ€ ์ง์ ‘ A๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๐Ÿ’ก 2. ์ ‘๊ทผ๋ฐฉ์‹FILE_PATH ์ถœ๋ ฅ ์˜ˆ์‹œ๋ฅผ ๋ณด๊ณ  '/home/grep/src/' + F.BOARD_ID + '/' + F.FILE_ID + F.FILE_NAME + F.FILE_EXT์ด๋ ‡๊ฒŒ ๋ฌธ์ž์—ด์ด ๊ฒฐํ•ฉ๋œ ๊ตฌ์กฐ๋ผ๋Š” ๊ฑธ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. CONCAT์œผ๋กœ ํ•ด๋‹น ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ๊ฒฐํ•ฉ ํ•ด ์ค€๋‹ค. ์ฒ˜์Œ์—๋Š” ํ—ท๊ฐˆ๋ ค์„œ + ์—ฐ์‚ฐ์ž๋กœ ํ–ˆ๋Š”๋ฐ ,๋กœ ๊ฒฐํ•ฉ์„ ํ•ด ์ค˜์•ผ ํ•œ๋‹ค.  ๋‘ ํ…Œ์ด๋ธ” ์กฐ์ธํ•  ๋•Œ๋Š” BOARD_ID ์ปฌ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ ์กฐ์ธ ํ•ด ์ค€๋‹ค. WHERE ์ ˆ์—์„œ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์“ด๋‹ค. ๋จผ์ € USED_GOODS_BOARD๋ฅผ ์กฐํšŒ์ˆ˜ ์ปฌ๋Ÿผ(VIEW) ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ํ•ด ์ฃผ๊ณ  ๊ทธ ์ค‘ ๊ฐ€์žฅ ๋†’์€ ๊ฒƒ๋งŒ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋‹ˆ๊นŒ LIMIT1 ์„ ๊ฑธ์–ด์ค€๋‹ค.  ๋งˆ์ง€๋ง‰์œผ๋กœ FILE_ID๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•˜๋ฉด ๋~! ์‰ฝ๋‹คโญ 3. ์ •๋‹ต์ฝ”๋“œ..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๐Ÿ’ก 2. ์ ‘๊ทผ๋ฐฉ์‹๋งŒ๋“ค์–ด์ค„ ๋ฉ”์„œ๋“œ๋Š” 4๊ฐ€์ง€ - ์˜คํ”„๋‹ ๋ ์œ„์น˜๋กœ ์ด๋™ํ•˜๋Š” `SkipOp()` ๋ฉ”์„œ๋“œ- ๋ช…๋ น์ด "next" ์ด๋ฉด 10์ดˆ ๋’ค๋กœ ์ด๋™ํ•˜๋Š” `moveToNext()`๋ฉ”์„œ๋“œ- ๋ช…๋ น์ด "prev" ์ด๋ฉด  10์ดˆ ์•ž์œผ๋กœ ์ด๋™ํ•˜๋Š” `moveToPrev()` ๋ฉ”์„œ๋“œ- String ํƒ€์ž…์œผ๋กœ ์ž…๋ ฅ ๋ฐ›์€ ์‹œ๊ฐ„์„ LocalTime์œผ๋กœ ํ˜•๋ณ€ํ™˜ ํ•˜๋Š” `getTime()`๋ฉ”์„œ๋“œ "mm:ss" ํ˜•์‹์œผ๋กœ ๋ฐ›์•„์˜จ ์‹œ๊ฐ„์„ ":" ๊ธฐ์ค€์œผ๋กœ ๋ถ„, ์ดˆ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค.LocalTime์ด ๊ฐ€์ง„ ๋ฉ”์„œ๋“œ๋กœ ์‹œ๊ฐ„ ๊ณ„์‚ฐ์„ ํ•˜๊ณ , ๋ฐ˜ํ™˜ํ•  ๋•Œ๋Š” ๋‹ค์‹œ "mm:ss" ํ˜•์‹์œผ๋กœ ํฌ๋งคํŒ… ํ•ด์„œ ๋ฐ˜ํ™˜ํ•ด ์ฃผ์–ด์•ผ ํ•จ.ํ˜„์žฌ ์‹œ๊ฐ„์ด ์˜คํ”„๋‹ ์œ„์น˜ ์•ˆ์— ์žˆ์„ ๋•Œ๋Š” ์ž๋™์œผ๋กœ SkipOp() ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค. โญ 3. ์ •๋‹ต์ฝ”๋“œimp..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช… ๐Ÿ’ก 2. ๋‚˜์˜ ์ฝ”๋“œ ๋ฌธ์ œ์—์„œ ๊ตฌํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ - ์ตœ๋Œ€ ๋ช‡ ๋ฒˆ ๋˜์ „์„ ๋Œ ์ˆ˜ ์žˆ๋Š”์ง€ ํšŸ์ˆ˜ ์ฆ‰, ์กด์žฌํ•˜๋Š” ๋˜์ „๋“ค์„๋กœ ๋„๋Š” ์ˆœ์„œ ๋ฐ”๊ฟ”๊ฐ€๋ฉด์„œ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์กฐํ•ฉ์„ ๋งŒ๋“ ๋‹ค.๋งŒ์•ฝ A,B,C ๋˜์ „์ด ์žˆ๋‹ค๋ฉด? `A-B-C`,`A-C-B`,`B-A-C`,`B-C-A`, `C-A-B`, `C-B-A` ์กฐํ•ฉ์„ ๋ชจ๋‘ ์ˆœํšŒํ•˜๋ฉด์„œ์ตœ๋Œ€๋กœ ๋ช‡ ๋ฒˆ ๋Œ ์ˆ˜ ์žˆ๋Š”์ง€ ์นด์šดํŒ… ํ•ด ์ค€๋‹ค. ๋ฐฑํŠธ๋ž˜ํ‚น๊ณผ DFS(๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰)๋ฐฑํŠธ๋ž˜ํ‚น๊ณผ dfs๋กœ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์กฐํ•ฉ ํ•ด ์ค€๋‹ค.depth ๋Š” ํƒ์ƒ‰ํšŸ์ˆ˜์ด๋‹ค.๊ตฌํ•˜๋Š” ์ˆœ๊ฐ„ answer = Math.max(answer, depth) ํ•ด์„œ ์ตœ๋Œ“๊ฐ’ ์—…๋ฐ์ดํŠธclass Solution { // ์ „์—ญ ๋ณ€์ˆ˜ ์„ ์–ธ public static int answer; // ์ตœ๋Œ€ ๋˜์ „ ํƒํ—˜ ํšŸ์ˆ˜ ..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๐Ÿ’ก 2. ์ ‘๊ทผ๋ฐฉ์‹์ผ๋‹จ ์ˆซ์ž ์‚ฌ์ด์˜ ๊ทœ์น™์„ ์ฐพ์•„์ฃผ์—ˆ๋‹ค.  ๋…ธํŠธ์— ํ•ด์„œ ์ข€ ์ง€์ €๋ถ„ํ•œ๋ฐbrown + yellow๋ฅผ ํ•ด ์ค€ ๋’ค ๊ทธ ์ˆซ์ž์˜ ์•ฝ์ˆ˜๋ฅผ ๋ชจ๋‘ ์ฐพ์•„๋‚ธ๋‹ค. ์•ฝ์ˆ˜๋“ค์˜ ์ค‘๊ฐ„๊ฐ’์ด ์ฐพ๊ณ ์ž ํ•˜๋Š” ์ˆซ์ž์ด๋‹ค.๋Œ€์‹ , ์ž…์ถœ๋ ฅ ์˜ˆ๋ฅผ ๋ณด๋ฉด ๋” ํฐ ์ˆซ์ž๊ฐ€ ๊ฐ€๋กœ์ด๊ณ  ๋” ์งง์€ ์ˆซ์ž๊ฐ€ ์„ธ๋กœ๋‹ค. brownyellowreturn102[4, 3]81[3, 3]2424[8, 6] ์—ฌ๊ธฐ์„œ brown + yellow ํ•ด ์ฃผ๋ฉด ๊ฐ๊ฐ10+2 = 128 + 1 = 924 + 24 = 48 12์˜ ์•ฝ์ˆ˜ [1, 2, 3, 4, 6, 12]9์˜ ์•ฝ์ˆ˜ [1, 3, 9] 48์˜ ์•ฝ์ˆ˜ [1, 2, 3, 4, 6, 8, 12, 16, 24, 48] ์ค‘ ์ •๋‹ต์€ ์•ฝ์ˆ˜์˜ ๊ฐฏ์ˆ˜๊ฐ€ ์ง์ˆ˜๋ฉด ๊ฐ€์šด๋ฐ ์žˆ๋Š” ์ˆซ์ž ๋‘ ๊ฐœ ์ด๋‹ค. (์ถœ๋ ฅ์€ ํฐ ์ˆซ์ž ๋จผ์ € ํ•ด์•ผ ..
์ธ์ ˆ๋ฏธ์˜€๋˜๊ฒƒ
'์ฝ”๋“œ' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก
์ƒ๋‹จ์œผ๋กœ