๐ฅ๏ธ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..