๐Ÿ–ฅ๏ธSW Engineer

    [ADV_db]Chap 4. Query-processing

    # ์งˆ์˜ ์ฒ˜๋ฆฌ ์ˆœ์„œ Parsing and Translation ๋“ค์–ด์˜จ ์งˆ์˜๋ฌธ์—์„œ ๋ฌธ๋ฒ•์  ์˜ค๋ฅ˜๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ๊ด€๋ จ ๋ฆด๋ ˆ์ด์…˜๋“ค์„ ํ™•์ธํ•œ๋‹ค. DBMS๋‚ด๋ถ€์—์„œ ์ž‘๋™๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ๋ฒˆ์—ญํ•˜๊ณ , relational algebra๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. View์—ฐ์‚ฐ์ด ํฌํ•จ๋œ ์ฟผ๋ฆฌ์˜ ๊ฒฝ์šฐ, View๋ฅผ ์ •์˜ํ•˜๋Š” ๋ชจ๋“  ๊ด€๊ณ„ ๋Œ€์ˆ˜ ๋ณ€ํ™˜์‹์œผ๋กœ ๋Œ€์ฒด๋œ๋‹ค. Optimizer ์—ฌ๋Ÿฌ relational algebra ์ค‘์—์„œ ๊ฐ€์žฅ ์ข‹์€ Execution plan์„ ๊ณ ๋ฅธ๋‹ค. ๊ณ ๋ฅด๋Š” ๊ธฐ์ค€์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํŒŒ์ผ์ด ์ €์žฅ๋œ ๋ฐฉ์‹์ด๋‚˜ ์ธ๋ฑ์Šค์˜ ์œ ๋ฌด์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” Cost๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฐ€์žฅ ๋‚ฎ์€ Cost๋ฅผ ๊ฐ€์ง„ Execution plan์„ ์„ ํƒํ•œ๋‹ค. Evaluation ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ์ฃผ์„์ด ๋‹ฌ๋ฆฐ relational-algebra operation์„ e..

    [๋ฐฑ์ค€]1920 - ์ˆ˜ ์ฐพ๊ธฐ

    https://www.acmicpc.net/problem/1920 1920๋ฒˆ: ์ˆ˜ ์ฐพ๊ธฐ ์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” N๊ฐœ์˜ ์ •์ˆ˜ A[1], A[2], …, A[N]์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” M(1 ≤ M ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” M๊ฐœ์˜ ์ˆ˜๋“ค์ด ์ฃผ์–ด์ง€๋Š”๋ฐ, ์ด ์ˆ˜๋“ค www.acmicpc.net N = int(input()) A = set(map(int, input().split())) M = int(input()) B = list(map(int, input().split())) for i in range(M): if B[i] in A : print(1) else: print(0) https://xzio.tistory.com/1828 ์ž๋ฃŒ ..

    [๋ฐฑ์ค€]2164 - ์นด๋“œ2

    https://www.acmicpc.net/problem/2164 2164๋ฒˆ: ์นด๋“œ2 N์žฅ์˜ ์นด๋“œ๊ฐ€ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ์นด๋“œ๋Š” ์ฐจ๋ก€๋กœ 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋ถ™์–ด ์žˆ์œผ๋ฉฐ, 1๋ฒˆ ์นด๋“œ๊ฐ€ ์ œ์ผ ์œ„์—, N๋ฒˆ ์นด๋“œ๊ฐ€ ์ œ์ผ ์•„๋ž˜์ธ ์ƒํƒœ๋กœ ์ˆœ์„œ๋Œ€๋กœ ์นด๋“œ๊ฐ€ ๋†“์—ฌ ์žˆ๋‹ค. ์ด์ œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋™์ž‘์„ ์นด๋“œ๊ฐ€ www.acmicpc.net from collections import deque inp = int(input()) card = deque() for i in range(1,inp+1): card.append(i) while len(card) != 1: card.popleft() last = card.popleft() card.append(last) print(card[0]) https://codingpractices.tis..

    [๋ฐฑ์ค€]1436-์˜ํ™”๊ฐ๋… ์ˆŒ

    https://www.acmicpc.net/problem/1436 1436๋ฒˆ: ์˜ํ™”๊ฐ๋… ์ˆŒ 666์€ ์ข…๋ง์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, ๋งŽ์€ ๋ธ”๋ก๋ฒ„์Šคํ„ฐ ์˜ํ™”์—์„œ๋Š” 666์ด ๋“ค์–ด๊ฐ„ ์ œ๋ชฉ์„ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค. ์˜ํ™”๊ฐ๋… ์ˆŒ์€ ์„ธ์ƒ์˜ ์ข…๋ง ์ด๋ผ๋Š” ์‹œ๋ฆฌ์ฆˆ ์˜ํ™”์˜ ๊ฐ๋…์ด๋‹ค. ์กฐ์ง€ ๋ฃจ์นด์Šค๋Š” ์Šคํƒ€์›Œ www.acmicpc.net inp = int(input()) num = 666 while inp != 0: if '666' in str(num): inp = inp-1 if inp == 0: break num = num + 1 666๋ถ€ํ„ฐ 1์”ฉ ๋” ํ•ด๊ฐ€๋ฉฐ ํ•ด๋‹น ๋ฌธ์ž์—ด์— '666'์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ๋ฅผ ํ™•์ธํ•ด๋‚˜๊ฐ€๋Š” "๋ธŒ๋ฃจํŠธ ํฌ์Šค" ๋ฌธ์ œ๋‹ค.

    [ADV_db]Chap 12-14. ์—ฐ์Šต๋ฌธ์ œ

    # Chap 12 . Physical storage system 12.1 SSD๋ฅผ ์ €์žฅ์žฅ์น˜๋กœ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๊ณ , ์•„๋‹ˆ๋ฉด ์ €์žฅ์žฅ์น˜์™€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ„์˜ ๋ฒ„ํผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ด ์ค‘ ๋งŒ์•ฝ real-time์— ์‚ฌ์šฉ๋˜๋Š” SSD๋ผ๋ฉด ์–ด๋–ค ์šฉ๋„๋กœ ์“ฐ๋Š”๊ฒŒ ์ ํ•ฉํ• ๊นŒ?๊ทธ๋ฆฌ๊ณ  ๋งŒ์•ฝ ์—„์ฒญ ํฐ ๋ฆด๋ ˆ์ด์…˜์ด ์žˆ๋Š”๋ฐ ์ด ์ค‘ ์ผ๋ถ€๋งŒ ์ž์ฃผ ์ด์šฉ๋˜๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด SSD๋ฅผ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•˜๋Š”๊ฒŒ ์ข‹์„์ง€ ์„ค๋ช…ํ•˜์‹œ์˜ค Real-time์˜ ๊ฒฝ์šฐ ์ €์žฅ์žฅ์น˜์˜ ์šฉ๋„๋กœ ์“ฐ๋Š” ๊ฒŒ ๋” ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ํฐ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ฒฝ์šฐ์—๋Š” ์ž์ฃผ ์ด์šฉํ•˜๋Š” ๋ถ€๋ถ„์„ ์บ์‹œ๋‚˜ ๋ฒ„ํผ์˜ ํ˜•ํƒœ๋กœ SSD๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. 12.2 ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋””์Šคํฌ์—์„œ ์•ˆ์ชฝ Track์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๊นฅ์ชฝ Track๋งŒ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ด๋Ÿฐ ๊ฒฝ์šฐ์˜ ์žฅ์ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜์‹œ์˜ค. ์–ด์ฐจํ”ผ ์•ˆ์ชฝ์ด๋‚˜ ๋ฐ”๊นฅ์ชฝ์ด๋‚˜..

    [ADV_db]Chap 3. Hash index

    # Static Hashing Hashing ๋Œ€๋ถ€๋ถ„ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์— ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜์ง€๋งŒ, ํŒŒ์ผ์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•  ๋•Œ๋„ ์‚ฌ์šฉ๋œ๋‹ค. ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ๋Š” ๋ฒ„์ผ“์— ๋ ˆ์ฝ”๋“œ๋“ค์˜ ์ธ๋ฑ์Šค๋“ค์ด ๋“ค์–ด์žˆ์ง€๋งŒ, ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•  ๋•Œ๋Š” ์‹ค์ œ ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค. Hash Index๋Š” ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ํ†ต๊ณผํ•ด์„œ ๋‚˜์˜ค๋Š” ๊ฐ’์„ Search key๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. Bucket์ด๋ผ๋Š” ๋””์Šคํฌ ๋ธ”๋ก์— ๊ฐ™์€ ํ•ด์‹œ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ์—ฌ๋Ÿฌ ์—”ํŠธ๋ฆฌ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค. ๋งŒ์•ฝ Bucket์˜ Index๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ๋‹ค๋ฉด Static Hashing ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด, Dynamic Hashing์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋‹ค๋ฅธ ์„œ์น˜ ํ‚ค ๊ฐ’์„ ๊ฐ€์ง€๋”๋ผ๋„ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ํ†ต๊ณผํ–ˆ์„ ๋•Œ ๊ฐ’์ด ๊ฐ™๋‹ค๋ฉด ๊ฐ™์€ Bucket์— ์œ„์น˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ์—”ํŠธ๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•ด๋‹น B..