๋ฐ์ดํ„ฐ๋ถ„์„๊ฐ€

1๏ธโƒฃ ๊ทธ๋ฆฌ๋”” (Greedy) ๋งค์ˆœ๊ฐ„ ๊ฐ€์žฅ ์ข‹์•„๋ณด์ด๋Š” ๊ฒƒ์„ ์„ ํƒํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๊ฐ€๋Š” ๋ฐฉ๋ฒ• ๋ฐฑ์ค€ > 5585 ๊ฑฐ์Šค๋ฆ„๋ˆ 5585๋ฒˆ: ๊ฑฐ์Šค๋ฆ„๋ˆ ํƒ€๋กœ๋Š” ์ž์ฃผ JOI์žกํ™”์ ์—์„œ ๋ฌผ๊ฑด์„ ์‚ฐ๋‹ค. JOI์žกํ™”์ ์—๋Š” ์ž”๋ˆ์œผ๋กœ 500์—”, 100์—”, 50์—”, 10์—”, 5์—”, 1์—”์ด ์ถฉ๋ถ„ํžˆ ์žˆ๊ณ , ์–ธ์ œ๋‚˜ ๊ฑฐ์Šค๋ฆ„๋ˆ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ ๊ฒŒ ์ž”๋ˆ์„ ์ค€๋‹ค. ํƒ€๋กœ๊ฐ€ JOI์žกํ™”์ ์—์„œ ๋ฌผ๊ฑด์„ ์‚ฌ www.acmicpc.net 2๏ธโƒฃ ์™„์ „ ํƒ์ƒ‰ (Brute Force) ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜์— ๋Œ€ํ•ด์„œ ํƒ์ƒ‰ ๋‹จ์ˆœํ•˜์ง€๋งŒ, ์‹œ๊ฐ„๋ณต์žก๋„ ๋†’์•„์งˆ ๊ฐ€๋Šฅ์„ฑ โฌ†๏ธ 3๏ธโƒฃ ์ด์ง„ ํƒ์ƒ‰ (Binary Search) ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ ์ ˆ๋ฐ˜์”ฉ ์ขํ˜€๊ฐ€๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ• O(logN)์˜ ์‹œ๊ฐ„๋ณต์žก๋„ 4๏ธโƒฃ ์žฌ๊ท€ (Recursive) ๋ฌธ์ œ์˜ ๋ฒ”์œ„๋ณด๋‹ค ์•ฝ๊ฐ„ ์ข์€ ํ•˜์œ„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ - ๋ฐ˜๋ณต..
1๏ธโƒฃ ํ•ด์‹œ ํ…Œ์ด๋ธ” (Hash Table) Key:Value ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰์ด ์‰ฌ์šด ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ์ž๋ฃŒ๊ตฌ์กฐ์—์„œ ๋“ฑ์žฅํ•˜๋Š” ๊ฐœ๋…(concept)๋“ค์„ ๊ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋งž์ถฐ์„œ ์ƒˆ๋กญ๊ฒŒ ๋ถˆ๋ฆผ ex. Array(๊ฐœ๋…) - List(ํŒŒ์ด์ฌ), Hash Table(๊ฐœ๋…) - Dictionary(ํŒŒ์ด์ฌ) โœ… Hash Function Key๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ํ•ด๋‹น Value๊ฐ€ ์ €์žฅ๋œ ๊ณณ์„ ์•Œ๋ ค์คŒ *SQL ์ตœ์ ํ™” ๋ฐฉ๋ฒ• '์˜ตํ‹ฐ๋งˆ์ด์ €' ์ฐธ๊ณ  ! 2๏ธโƒฃ ํŠธ๋ฆฌ (Tree) ๊ณ„์ธต์  ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ๋ฃจํŠธ(Root, ์ตœ์ƒ์œ„ ๊ณ„์ธต)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์žฌ๊ท€์ ์ธ ๊ตฌ์กฐ ๋น„์„ ํ˜• ๊ตฌ์กฐ โœ… ํŠธ๋ฆฌ์˜ ์ข…๋ฅ˜ ์ผ๋ฐ˜ ํŠธ๋ฆฌ, ์ด์ง„ ํŠธ๋ฆฌ, ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ, ํž™ etc โœ… ํŠธ๋ฆฌ์˜ ์—ฐ์‚ฐ ์ถ”๊ฐ€/์‚ญ์ œ, ์ˆœํšŒ(Traversal) โ›” ์—ฌ๊ธฐ์„œ..
1๏ธโƒฃ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์˜๋ฏธ โœ… ์ž…์‚ฌ ์‹œํ—˜์—์„œ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋ฐœ์ž ๋Šฅ๋ ฅ ํ‰๊ฐ€๋ฅผ ์œ„ํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ž๋ฃŒ์™€ ๋…ผ๋ฆฌ๋ฅผ ์ด์š”ํ•œ ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ ๋“ฑ์œผ๋กœ ๊ตฌํ˜„ ex. ์™„์ „ ํƒ์ƒ‰, ์ด์ง„ ํƒ์ƒ‰ โœ… ๋ฐ์ดํ„ฐ ๋ถ„์„, ํ†ต๊ณ„, ๋จธ์‹ ๋Ÿฌ๋‹์—์„œ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ชจ๋ธ๋ง๊ณผ ๊ทธ ๋ถ„์„ ๊ณผ์ •์—์„œ์˜ ๋ฐฉ๋ฒ•๋ก  ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ์ˆ˜ํ•™์  ๊ณ„์‚ฐ์œผ๋กœ ๊ตฌํ˜„ ex. ์„ ํ˜•ํšŒ๊ท€, ๋”ฅ๋Ÿฌ๋‹ ์•Œ๊ณ ๋ฆฌ 2๏ธโƒฃ ๋ฐ์ดํ„ฐ ๋ถ„์„๊ฐ€๊ฐ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ณต๋ถ€ํ•ด์•ผ ํ•˜๋Š” ์ด์œ  ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋Š” ์š”์ฒญ์ด๋‚˜ ํ˜‘์—… ์—†์ด, ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค ํˆฌ์—ฌํ•˜์ง€ ์•Š๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ์•Œ๊ณ ๋ฆฌ์ฆ˜, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋Šฅ๋ ฅ ๊ธฐ๋ฐ˜์œผ๋กœ ์—…๋ฌด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ฐœ์„ ํ•˜๊ฑฐ๋‚˜ ์—…๋ฌด ๋ฒ”์œ„๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก Q. ์šฐ๋ฆฌ์—๊ฒ ์ฑ—GPT๊ฐ€ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š”๋ฐ์š”? ๐Ÿง A. ์ฑ—GPT๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ฒ˜ํ•œ ๋งฅ๋ฝ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ , ์ •๋‹ต๋งŒ ์œ ์‚ฌํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ์ค€๋‹ค. ๋”ฐ๋ผ์„œ ์‘์šฉ..
1๏ธโƒฃ Facts & 2๏ธโƒฃ Findings ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ 9๋ฌธ์ œ (SQL 8 + ํŒŒ์ด์ฌ 1) 1์ผ 1+์ปค๋ฐ‹ (๊นƒํ—ˆ๋ธŒ) ๊ณผ์ œ SQL ๊ณผ์ œ: P/F PASS ํŒŒ์ด์ฌ ๊ณผ์ œ: ์ œ์ถœ ์™„๋ฃŒ ๊ฐ•์˜ ํŒŒ์ด์ฌ ๋ฌธ๋ฒ• ๊ธฐ์ดˆ ๊ฐ•์˜ ์ˆ˜๊ฐ• (1/1) ๋ฐ์ดํ„ฐ ๋ฆฌํ„ฐ๋Ÿฌ์‹œ (1/1) SQLD (9/16) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ์™€ ์„ฑ๋Šฅ SQL ์–ธ์–ด ๋ถ„๋ฅ˜ - DDL, DML, DCL, TCL DML ๋ช…๋ น์–ด ์ •๋ฆฌ ์ฝ˜ํ…์ธ  ์•„ํ‹ฐํด ๋ฐ์ดํ„ฐ ๋ฆฌํ„ฐ๋Ÿฌ์‹œ ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉฐ ์ฐพ์•„๋ณธ ์•„ํ‹ฐํด ์ „๋ถ€. ์œ ํŠœ๋ธŒ ์นด์ผ์Šค์ฟจ - Ep 10. แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ แ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จแ„€แ…ก แ„‘แ…ฉแ„แ…ณแ„‘แ…ฉแ†ฏแ„…แ…ตแ„‹แ…ฉ แ„Œแ…ฎแ„Œแ…ฆ แ„Žแ…ฎแ„Žแ…ฅแ†ซ ๊ธฐํƒ€ ๊ฐ•๋‚จ ์ถœ๊ทผ๊ธธ์— ์ •์ž/ํŒ๊ต์—ญ ๋‚ด๋ฆด ์‚ฌ๋žŒ ์˜ˆ์ธกํ•˜๊ธฐ (์ตœ๊ทœ๋ฏผ) 3๏ธโƒฃ Feelings ์ข€ ํ•ด์ดํ•ด์ง„ ๊ธฐ๋ถ„์ด๋‹ค. ์‚ฌ์‹ค ํ•ด์ดํ•ด์กŒ๋‹ค๊ธฐ ๋ณด๋‹ค๋Š”, ๊ณผ์ œ์— ์ง‘..
์–ด์ œ๋Š” ์žฅ์—ผ ์ด์Šˆ๋กœ ์ข€ ๋นจ๋ฆฌ ํ‡ด์‹คํ–ˆ๊ณ , ์˜ค๋Š˜์€ SQL ๊ณผ์ œ P/F ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”๋‹ค. ํŒจ์Šค์˜€๋‹ค. ๊ทธ๋ž˜์„œ ํŒŒ์ด์ฌ ๊ณผ์ œ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค. # 1๋ฒˆ ์ฝ”๋“œ ์ž‘์„ฑ def check_inventory(list1, n): over = [] lack = [] for i in list1: if i[1] > n: over.append(i[0]) else: lack.append(i[0]) print('์žฌ๊ณ  ๊ณผ์ž‰: ', over) print('์žฌ๊ณ  ๋ถ€์กฑ: ', lack) # ์žฌ๊ณ  ๋ฐ์ดํ„ฐ ์˜ˆ์‹œ inventory_data = [ ['Apple', 30], ['Banana', 20], ['Orange', 50] ] check_inventory(inventory_data, 20) ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ ํ˜ผ๊ณตํŒŒ์™€ ํŒŒ์ด์ฌ ๊ฐ•์˜ ๋•๋ถ„์— ํฐ ์–ด๋ ค์›€์€..
ํ–‰ํŒฝ
'๋ฐ์ดํ„ฐ๋ถ„์„๊ฐ€' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก