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

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

[๋ฐฑ์ค€] 18405 ๊ฒฝ์Ÿ์  ์ „์—ผ (Python/ํŒŒ์ด์ฌ) https://www.acmicpc.net/problem/18405 18405๋ฒˆ: ๊ฒฝ์Ÿ์  ์ „์—ผ ์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ N, K๊ฐ€ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 200, 1 ≤ K ≤ 1,000) ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ์„œ ์‹œํ—˜๊ด€์˜ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ–‰์€ N๊ฐœ์˜ ์›์†Œ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ํ•ด๋‹น ์œ„์น˜ www.acmicpc.net 1. ํ† ๋งˆํ† ๋ž‘ ๋น„์Šทํ•˜๊ฒŒ ์ฒ˜์Œ์— ๋ฐ”์ด๋Ÿฌ์Šค์˜ ์ขŒํ‘œ๋ฅผ ํ์— ์ €์žฅํ•ด๋‘๊ณ  bfs๋ฅผ ๋Œ๋ฆฌ๋ฉด๋œ๋‹ค. 2. ๋‹จ ์ด ๋ฌธ์ œ์—์„œ๋Š” ๋‚ฎ์€ ๋ฒˆํ˜ธ์˜ ๋ฐ”์ด๋Ÿฌ์Šค๋ถ€ํ„ฐ ์ „์—ผ๋œ๋‹ค๋Š” ํŠน์„ฑ์ด ์žˆ์œผ๋ฏ€๋กœ bfs ๋Œ๋ฆฌ๊ธฐ ์ง์ „์— ํ๋ฅผ ํ•œ๋ฒˆ ์ •๋ ฌํ•ด์ค˜์•ผ ํ•œ๋‹ค. from collections import deque import sys, os, io, atexit input = lambda: sys.stdin.readl.. 2022. 10. 10.
(N:1) Comment - User Relationship Django Relationship fields (N:1) (Comment - User) ๋ชจ๋ธ ๊ด€๊ณ„ ์„ค์ • โœ” models.py์— ์™ธ๋ž˜ ํ‚ค ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ  migrationsํ•ด์ฃผ๊ธฐ! Create 1. ์ด์ „๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ถˆํ•„์š”ํ•œ ์œ ์ € ์„ ํƒ์ฐฝ ์ถœ๋ ฅ 2. Form์—์„œ ์ถœ๋ ฅ ํ•„๋“œ ์ˆ˜์ • 3. ๋ˆ„๋ฝ๋œ ์™ธ๋ž˜ํ‚ค ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ Read Detail ํ…œํ”Œ๋ฆฟ์—์„œ ์ž‘์„ฑ์ž ์ถœ๋ ฅ๋˜๋„๋ก ๋ณ€๊ฒฝ Delete 1. ๋Œ“๊ธ€ ์ž‘์„ฑ์ž ํ™•์ธํ•ด์„œ ๋ณธ์ธ ๋Œ“๊ธ€๋งŒ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ 2. ๋Œ“๊ธ€ ์ž‘์„ฑ์ž ์™ธ์— ๋Œ“๊ธ€ ์‚ญ์ œ ๋ฒ„ํŠผ ์ˆจ๊ธฐ๊ธฐ ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ ‘๊ทผ ์ œํ•œํ•˜๊ธฐ ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž์ธ ๊ฒฝ์šฐ๋งŒ ๋Œ“๊ธ€ ์ž‘์„ฑํ•˜๊ธฐ ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž์ธ ๊ฒฝ์šฐ๋งŒ ๋Œ“๊ธ€ ์‚ญ์ œํ•˜๊ธฐ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ โœ” ํ•œ๋ฒˆ์— ๋‹ค ์ถ”๊ฐ€ํ• ๋ ค๊ณ  ํ•˜์ง€๋ง๊ณ  ์ฒ˜์Œ์—” ๊ตฌ์กฐ๋ฅผ ์ƒ๊ฐํ•˜๋ฉด์„œ ํ•˜๋‚˜์”ฉ ์„ค๊ณ„ํ•˜๊ธฐ 2022. 10. 10.
(N:1) Article - User Relationship Django Relationship fields (N:1) (Article - User) User ๋ชจ๋ธ ์ฐธ์กฐ Django ์—์„œ User ๋ชจ๋ธ์„ ์ฐธ์กฐํ•˜๋Š” ๋ฐฉ๋ฒ• settings.AUTH_USER_MODEL get_user_model() 1. settings.AUTH_USER_MODEL โœ” ๋ฐ˜ํ™˜๊ฐ’: 'accounts.User' (๋ฌธ์ž์—ด) โœ” User ๋ชจ๋ธ์— ๋Œ€ํ•œ ์™ธ๋ž˜ ํ‚ค ๋˜๋Š” M:N ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•  ๋–„ ์‚ฌ์šฉ โœ” models.py์˜ ๋ชจ๋ธ ํ•„๋“œ์—์„œ User ๋ชจ๋ธ์„ ์ฐธ์กฐํ•  ๋•Œ ์‚ฌ์šฉ 2. get_user_model() โœ” ๋ฐ˜ํ™˜๊ฐ’: User Object(๊ฐ์ฒด) โœ” ํ˜„์žฌ ํ™œ์„ฑํ™”๋œ User ๋ชจ๋ธ ๋ฐ˜ํ™˜ โœ” models.py ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ณณ์—์„œ ์œ ์ € ๋ชจ๋ธ์„ ์ฐธ์กฐํ•  ๋•Œ ์‚ฌ์šฉ ๋ชจ๋ธ ๊ด€๊ณ„ ์„ค์ • 1. model.py 2. ma.. 2022. 10. 9.
(N:1) Comments - Article Relationship Django Relationship fields (N:1) (Comments - Article) Django Relationship fields ์ข…๋ฅ˜ OneToOneField() - 1:1 ForeignKey() - N:1 ManyToManyField() - N:N ForeignKey(to, on_delete, **options) โœ” N:1 relationship์„ ๋‹ด๋‹นํ•˜๋Š” Django์˜ ๋ชจ๋ธ ํ•„๋“œ ํด๋ž˜์Šค โœ” Django ๋ชจ๋ธ์—์„œ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์™ธ๋ž˜ ํ‚ค ์†์„ฑ์„ ๋‹ด๋‹น โœ” 2๊ฐœ์˜ ํ•„์ˆ˜ ์œ„์น˜ ์ธ์ž ์ฐธ์กฐํ•˜๋Š” model class on_delete์˜ต์…˜ on_delete โœ” ์™ธ๋ž˜ ํ‚ค๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ์‚ฌ๋ผ์กŒ์„ ๋•Œ ์™ธ๋ž˜ ํ‚ค๋ฅผ ๊ฐ€์ง„ ๊ฐ์ฒด๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ง€๋ฅผ ์ •์˜ โœ” ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์œ„ํ•ด์„œ ์ค‘์š”ํ•œ ์„ค์ •! โœ” ์˜ต.. 2022. 10. 9.
N:1 Relationship Relational Database - N:1 ๊ด€๊ณ„ RDB์—์„œ์˜ ๊ด€๊ณ„ 1:1 โœ” ํ•œ ํ…Œ์ด๋ธ”์˜ ๋ ˆ์ฝ”๋“œ ํ•˜๋‚˜๊ฐ€ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๋ ˆ์ฝ”๋“œ ๋‹จ ํ•œ ๊ฐœ์™€ ๊ด€๋ จ N:1 โœ” ํ•œ ํ…Œ์ด๋ธ”์˜ 0๊ฐœ ์ด์ƒ์˜ ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๋ ˆ์ฝ”๋“œ ํ•œ ๊ฐœ์™€ ๊ด€๋ จ๋œ ๊ฒฝ์šฐ N:N โœ” ํ•œ ํ…Œ์ด๋ธ”์˜ 0๊ฐœ ์ด์ƒ์˜ ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ 0๊ฐœ ์ด์ƒ์˜ ๋ ˆ์ฝ”๋“œ์™€ ๊ด€๋ จ๋œ ๊ฒฝ์šฐ โœ” ์–‘ ์ชฝ ๋ชจ๋‘ N:1 ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง N:1 ๊ด€๊ณ„์˜ ์˜ˆ์‹œ โœ” ๊ณ ๊ฐ ํ…Œ์ด๋ธ”์˜ PK๋ฅผ ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์— FK๋กœ ์ง‘์–ด ๋„ฃ์–ด ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ Foreign Key โœ” ์™ธ๋ž˜ ํ‚ค(์™ธ๋ถ€ ํ‚ค) โœ” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ•œ ํ…Œ์ด๋ธ”์˜ ํ•„๋“œ ์ค‘ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ํ–‰์„ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค โœ” ์ฐธ์กฐํ•˜๋Š” ํ…Œ์ด๋ธ”์—์„œ 1๊ฐœ์˜ ํ‚ค์— ํ•ด๋‹นํ•˜๊ณ , ์ด๋Š” ์ฐธ์กฐ๋˜๋Š” ์ธก ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธ ํ‚ค(Primary Key)๋ฅผ ๊ฐ€๋ฆฌํ‚ด โœ” ์ฐธ์กฐํ•˜๋Š” .. 2022. 10. 8.
Relational Database RDB โœ” Relational Database โœ” ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ”, ํ–‰, ์—ด ๋“ฑ์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ตฌ์กฐํ™” โœ” ์ž๋ฃŒ๋ฅผ ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”๋กœ ๋‚˜๋ˆ„์–ด์„œ ๊ด€๋ฆฌํ•˜๊ณ , ์ด ํ…Œ์ด๋ธ” ๊ฐ„ ๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•ด ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์กฐ์ž‘ ๊ฐ€๋Šฅ ํ…Œ์ด๋ธ”๊ฐ„ ๊ด€๊ณ„ ์„ค์ • โœ” ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์ธ๊ฐ€... โœ” ์ฐธ์กฐํ•˜๋Š” ๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ”์˜ id๋ฅผ ์ถ”๊ฐ€์ ์ธ column์œผ๋กœ ๊ด€๋ฆฌ! RDB์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ 1. ์Šคํ‚ค๋งˆ โœ” ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ โœ” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ž๋ฃŒ์˜ ๊ตฌ์กฐ, ํ‘œํ˜„ ๋ฐฉ๋ฒ•, ๊ด€๊ณ„ ๋“ฑ ์ „๋ฐ˜์ ์ธ ๋ช…์„ธ๋ฅผ ๊ธฐ์ˆ ํ•œ ๊ฒƒ 2. ํ…Œ์ด๋ธ” โœ” ํ•„๋“œ์™€ ๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์กฐ์ง๋œ ๋ฐ์ดํ„ฐ ์š”์†Œ๋“ค์˜ ์ง‘ํ•ฉ โœ” ๊ด€๊ณ„(Relation)์ด๋ผ๊ณ ๋„ ๋ถ€๋ฆ„ โœ” ํ•„๋“œ(Field): ์†์„ฑ, column โœ” ๋ ˆ์ฝ”๋“œ(Record): ํŠœํ”Œ, row PK (Primary Key) โœ” ๊ธฐ๋ณธ .. 2022. 10. 8.