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

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

[๋ฐฑ์ค€] 16236 ์•„๊ธฐ์ƒ์–ด (Python/ํŒŒ์ด์ฌ) https://www.acmicpc.net/problem/16236 16236๋ฒˆ: ์•„๊ธฐ ์ƒ์–ด N×N ํฌ๊ธฐ์˜ ๊ณต๊ฐ„์— ๋ฌผ๊ณ ๊ธฐ M๋งˆ๋ฆฌ์™€ ์•„๊ธฐ ์ƒ์–ด 1๋งˆ๋ฆฌ๊ฐ€ ์žˆ๋‹ค. ๊ณต๊ฐ„์€ 1×1 ํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐํ˜• ์นธ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋‹ค. ํ•œ ์นธ์—๋Š” ๋ฌผ๊ณ ๊ธฐ๊ฐ€ ์ตœ๋Œ€ 1๋งˆ๋ฆฌ ์กด์žฌํ•œ๋‹ค. ์•„๊ธฐ ์ƒ์–ด์™€ ๋ฌผ๊ณ ๊ธฐ๋Š” ๋ชจ๋‘ ํฌ๊ธฐ๋ฅผ ๊ฐ€ www.acmicpc.net ๊ตฌํ˜„ ๋ฌธ์ œ์ด๋‹ค. ๋‚˜๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์ฒ˜์Œ์— ์ตœ๋Œ€ O(N^6)์˜ ์ฝ”๋“œ๋กœ pypy(1076ms)๋กœ ํ†ต๊ณผ (python ์‹œ๊ฐ„์ดˆ๊ณผ)ํ•˜๊ณ  ์ดํ›„์— jh05013๋‹˜์˜ ํ’€์ด๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ํ›จ์”ฌ ๋น ๋ฅธ ํ’€์ด(python: 288ms)๋กœ ๋‹ค์‹œ ํ’€์—ˆ๋Š”๋ฐ ๋‘ ๊ฐ€์ง€ ๋ชจ๋‘ ์†Œ๊ฐœํ•ด๋ณด๊ฒ ๋‹ค. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ƒ์–ด๊ฐ€ ๋‹ค์Œ ๋จน์ด๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ๊ณผ์ •์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ธ๋ฐ, ์—ฌ๊ธฐ์„œ '๊ฐ€์žฅ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ€๊นŒ์šฐ๋ฉฐ, ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ™์„ ๊ฒฝ์šฐ ์™ผ์ชฝ ์ƒ๋‹จ์— ์žˆ๋Š” .. 2022. 10. 13.
[4์ฃผ์ฐจ] TCP: Flow Control TCP: Flow Control Flow Control์ด๋ž€? โœ” Sender๊ฐ€ Receiverํ•œํ…Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ, receiver์˜ ์ˆ˜์šฉ ๋Šฅ๋ ฅ(buffer)์— ๋งž๊ฒŒ ๋ณด๋‚ด๋Š” ๊ฒƒ โœ” receiver driven โœ” ๋‹จ์ˆœํ•˜์ง€๋งŒ ๋งค์šฐ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ ์–ด๋–ป๊ฒŒ buffer ์ƒํƒœ๋ฅผ ์ „๋‹ฌํ•ด์ค„๊นŒ? โœ” receiver๋Š” TCP ์„ธ๊ทธ๋จผํŠธ์˜ header์˜ receiver buffer ํ•„๋“œ์— ๋‹ด์•„์„œ ๋ณด๋‚ด์ค€๋‹ค. receiver buffer๊ฐ€ 0์ผ ๊ฒฝ์šฐ...? โœ” ๋งŒ์•ฝ ๊ทน๋‹จ์ ์œผ๋กœ receiver๊ฐ€ activeํ•˜๊ฒŒ ๋ณด๋‚ด๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ์ผ€์ด์Šค๋ผ๋ฉด sender๋Š” ์ฒ˜์Œ receiver buffer 0์„ ๋ฐ›๊ณ  ๊ณ„์† ๋Œ€๊ธฐํ•˜๊ฒŒ ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. โœ” ๋”ฐ๋ผ์„œ sender๋Š” ์ฃผ๊ธฐ์ ์œผ๋กœ data๊ฐ€ 0 ํ˜น์€ 1bit์ธ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „์†กํ•ด์„œ ack.. 2022. 10. 13.
ํŒŒ์ด์ฌ 2์ฐจ์› ๋ฐฐ์—ด ์‰ฝ๊ฒŒ ํšŒ์ „ ์‹œํ‚ค๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€๋‹ค๋ณด๋ฉด ์ƒํ•˜์ขŒ์šฐ ์—ฌ๋Ÿฌ๋ฐฉํ–ฅ ํ˜น์€ ์—ด๋‹จ์œ„๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿด ๋•Œ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์ž‘์—…ํ•˜๊ธฐ ํŽธํ•œ ํ•œ ๋ฐฉํ–ฅ(์ฃผ๋กœ ์ง๊ด€์ ์ด๋ฉฐ ์Šฌ๋ผ์ด์‹ฑ์„ ์ด์šฉํ•˜๊ธฐ ํŽธํ•œ ์ขŒ -> ์šฐ๋กœ ํ•œ๋‹ค)์— ๋Œ€ํ•ด์„œ๋งŒ ์ฝ”๋“œ ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋‚˜๋จธ์ง€ ๋ฐฉํ–ฅ์€ ๋ฐฐ์—ด์„ ํšŒ์ „ ์‹œ์ผœ์„œ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ฝ”๋“œ๊ฐ€ ํ›จ์”ฌ ์งง์•„์ง€๊ณ  ๊น”๋”ํ•ด์ง€๋ฉฐ, ์—๋Ÿฌ๊ฐ€ ์ผ์–ด๋‚  ์ผ์ด ์ ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์ง€๋งŒ ๋ฐ˜๋Œ€๋กœ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ๋Š˜์–ด๋‚˜๊ณ  ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์˜ˆ์™ธ ์ผ€์ด์Šค๋กœ ์ธํ•ด ์˜ค๋‹ต์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์œผ๋‹ˆ ์กฐ์‹ฌํ•ด์„œ ์ ์šฉํ•ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค. ์›๋ž˜๋ฅผ ์ด์ค‘ for๋ฌธ์„ ๋„๋Š” ๋ฐฉ๋ฒ•์ด ์ •์„(?)์ด์ง€๋งŒ ์‹ค์ œ ๋ฌธ์ œ ํ’€ ๋•Œ ์“ฐ๊ธฐ ํŽธํ•˜๋ผ๊ณ  ๊ฐ ๋ฐฉํ–ฅ ๋ณ„๋กœ ํ•œ ์ค„์”ฉ ํ•จ์ˆ˜ ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ–ˆ๋‹ค. ๋งŒ์•ฝ ํ•™์Šต์ด ๋ชฉ์ ์ด๋ผ๋ฉด for๋ฌธ์œผ๋กœ ๊ฐ ๋ฐฉํ–ฅ๋ณ„๋กœ + ์ „์น˜๋ฐฐ์—ด๊นŒ์ง€ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๋Š” ๊ฒƒ ์ถ”์ฒœ!! N.. 2022. 10. 12.
Django์—์„œ css, js ๋“ฑ static(์ •์ ) ์š”์†Œ ๋“ฑ๋ก/๊ด€๋ฆฌํ•˜๊ธฐ Django์—์„œ css, ์ด๋ฏธ์ง€, js ๋“ฑ ์ •์ (static) ํŒŒ์ผ์ด๋‚˜ ์š”์†Œ๋“ค์„ ๋“ฑ๋กํ•˜๊ณ  ๊ด€๋ฆฌํ• ๋ ค๋ฉด static ํด๋”๋ฅผ ๋ณ„๋„๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ๋“ฑ๋ก ํ•ด์ค˜์•ผ๋œ๋‹ค. 1. ํ”„๋กœ์ ํŠธ์˜ settings ํŒŒ์ผ์— ๋“ค์–ด๊ฐ€์„œ ๊ฒฝ๋กœ๋ฅผ ๋“ฑ๋กํ•ด์ค€๋‹ค. STATICFILES_DIRS = [ BASE_DIR / 'static', ] 2. app ํด๋”์— static ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์ฃผ๊ณ  ์ •์  ์š”์†Œ๋ฅผ ๋‹ด์„ ํด๋”๋ฅผ ํ•˜์œ„ ํด๋”๋กœ ์ƒ์„ฑํ•ด์ค€๋‹ค. ๋ฐ”๋กœ static ํด๋”์— ๋„ฃ์–ด๋„ ์ƒ๊ด€ ์—†์œผ๋‚˜ ์ดํ›„ image๋‚˜ js ๋“ฑ ๋‹ค๋ฅธ ์š”์†Œ๋“ค๋„ ๊ฐ™์ด ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐœ๋ณ„ ํด๋”๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒŒ ํŽธ๋ฆฌํ•˜๋‹ค. 3. html ํŒŒ์ผ์— static๊ณผ ์ ์šฉ์‹œํ‚ฌ css ํŒŒ์ผ์„ ๋“ฑ๋กํ•ด์ค€๋‹ค. 2022. 10. 12.
.gitignore ํ™œ์šฉํ•ด์„œ ์›์น˜ ์•Š๋Š” ํŒŒ์ผ ๊นƒ์—์„œ ์ œ์™ธ์‹œํ‚ค๊ธฐ ๊นƒ์œผ๋กœ ์ž‘์—…์ด๋‚˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋‹ค๋ณด๋ฉด ๊ฐ€์ƒํ™˜๊ฒฝ(์‚ฌ์ง„์—์„œ์˜ venv)๋‚˜ ide ์„ค์ • ํŒŒ์ผ ๋“ฑ๊ณผ ๊ฐ™์ด ์›์น˜ ์•Š๋Š” ํŒŒ์ผ์ด ์ถ”์ , ์™ธ๋ถ€ ๋ ˆํฌ์ง€ํ† ๋ฆฌ(๊นƒํ—ˆ๋ธŒ ๋“ฑ)์— ์—…๋กœ๋“œ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋Ÿด ๋•Œ .gitignore ํŒŒ์ผ์„ ์ด์šฉํ•˜๋ฉด ์„ค์ •ํ•œ ํŒŒ์ผ์ด ๊นƒ์—๊ฒŒ ์ถ”์  ๋˜๋Š” ๊ฒƒ์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค.(๋ง ๊ทธ๋Œ€๋กœ ignore ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.) 1. ์ œ์™ธ์‹œํ‚ฌ ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒฝ๋กœ์— .gitignore ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค. ์‚ฌ์ง„์—์„œ๋Š” ์ž‘์—…ํ•˜๋˜ vscode๋กœ ๋ฐ”๋กœ ์ƒ์„ฑํ–ˆ๋Š”๋ฐ ๋‹น์—ฐํžˆ ํ„ฐ๋ฏธ๋„์—์„œ ์ƒ์„ฑํ•ด๋„๋œ๋‹ค. 2. ์ œ์™ธ ์‹œํ‚ฌ ํŒŒ์ผ๋“ค์„ .gitignore ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. ์›๋ž˜๋Š” ํŒŒ์ผ๊ณผ ํด๋”๋ฅผ ์ผ์ผ์ด ์ถ”๊ฐ€ํ•ด์ค˜์•ผ๋˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” ๋˜‘๋˜‘ํ•œ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋งŒ๋“  ํˆด์„ ์ด์šฉํ•˜๋„๋ก ํ•˜์ž https://www.toptal.com/developers/git.. 2022. 10. 11.
[๋ฐฑ์ค€] 12100 2048 (Easy) (Python/ํŒŒ์ด์ฌ) https://www.acmicpc.net/problem/12100 12100๋ฒˆ: 2048 (Easy) ์ฒซ์งธ ์ค„์— ๋ณด๋“œ์˜ ํฌ๊ธฐ N (1 ≤ N ≤ 20)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ๊ฒŒ์ž„ํŒ์˜ ์ดˆ๊ธฐ ์ƒํƒœ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. 0์€ ๋นˆ ์นธ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์ด์™ธ์˜ ๊ฐ’์€ ๋ชจ๋‘ ๋ธ”๋ก์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋ธ”๋ก์— ์“ฐ์—ฌ ์žˆ๋Š” ์ˆ˜๋Š” 2 www.acmicpc.net 1. N์ด 20 ์ดํ•˜์ด๊ณ  ์‹œํ–‰์ด 5๋ฒˆ์œผ๋กœ ๊ณ ์ •๋˜์–ด ์žˆ์–ด์„œ ๋ฐฑํŠธ๋ž˜ํ‚น์„ ์ด์šฉํ•œ ์™„์ „ํƒ์ƒ‰์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋‹ค. 2. ๋ธ”๋Ÿญ์˜ ๋ณ‘ํ•ฉ / ์ด๋™ 2๊ฐ€์ง€๋ฅผ ์ƒํ•˜์ขŒ์šฐ 4๋ฐฉํ–ฅ์œผ๋กœ ๊ตฌํ˜„ํ•ด์•ผ๋˜๋Š”๋ฐ ๋‚˜๋Š” ํ•œ ๋ฐฉํ–ฅ์— ๋Œ€ํ•ด์„œ๋งŒ ๊ตฌํ˜„ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ฐฐ์—ด์„ ํšŒ์ „ ์‹œ์ผœ์„œ ์ ์šฉํ•˜๋Š” ๋ฒ•์„ ์ด์šฉํ–ˆ๋‹ค. (์ฐธ๊ณ : https://bluuubery.tistory.com/48?category=584396) 3. .. 2022. 10. 11.