Skip to content

Instantly share code, notes, and snippets.

View dongwooklee96's full-sized avatar
๐Ÿ˜
Focusing

Lee Dong Wook dongwooklee96

๐Ÿ˜
Focusing
View GitHub Profile
@dongwooklee96
dongwooklee96 / main.py
Created August 24, 2021 07:26
์ •๋ ฌ
from random import randint
def bubble_sort(arr):
n = len(arr)
for i in range(n):
done_sort = True
for j in range(n - i - 1):
if arr[j] > arr[j + 1]:
"""
๋ฌธ์ œ : ์ตœ์žฅ ๊ณตํ†ต ๋ถ€๋ˆ„ ์ˆ˜์—ด (Longest Common Subsequence)
- ๋‘ ๋ฌธ์ž์—ด (str1, str2)๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ํ•ด๋‹น ๋‘ ๋ฌธ์ž์—ด์˜ ์ตœ์žฅ ๊ณตํ†ต ์ˆ˜์—ด์˜ ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ผ.
- ์ด ๋ฌธ์ œ์—์„œ ์–ธ๊ธ‰ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์€ ์—ฐ์†์ ์ด์ง€ ์•Š์œผ๋‚˜ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ด ๋  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž์—ด์„ ๋งํ•œ๋‹ค.
- ์˜ˆ๋ฅผ ๋“ค์–ด์„œ 'abcde' ๋ผ๋Š” ๋ฌธ์ž์—ด์—์„œ ๋ถ€๋ถ„ ์ˆ˜์—ด์„ 'abc', 'ace', 'aed' ๋“ฑ ๊ฐ ๋ฌธ์ž์˜ ์ˆœ์„œ๋ฅผ ์ง€ํ‚จ ๋ชจ๋“  ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์„ ๋งํ•œ๋‹ค.
### ์•„์ด๋””์–ด (Brute-Force)
1 str1์˜ ์ธ๋ฑ์Šค i, str2์˜ ์ธ๋ฑ์Šค j๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™” ํ•œ๋‹ค.
@dongwooklee96
dongwooklee96 / main.py
Created August 20, 2021 18:20
๋™์ „๊ตํ™˜
"""
# ๋ฌธ์ œ : ๋™์ „ ๊ตํ™˜
๊ฐ๊ธฐ ๋‹ค๋ฅธ ์•ก๋ฉด์„ ๊ฐ€์ง„ ๋™์ „ ๋ฐฐ์—ด๊ณผ ๊ฑฐ์Šฌ๋Ÿฌ์ฃผ์–ด์•ผ ํ•˜๋Š” ์ด ๊ธˆ์•ก์„ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์œผ๋ฉด ์ž”๋„์˜ ์กฐํ•ฉ์œผ๋กœ ๊ฑฐ์Šค๋ฆ„๋ˆ์„ ๋งž์ถฐ์ฃผ๊ธฐ ์œ„ํ•œ ์ตœ์†Œํ•œ์˜
๋™์ „ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ž.
์˜ˆ๋ฅผ ๋“ค์–ด์„œ [1, 5, 10, 25] ์•ก๋ฉด์˜ ๋™์ „์ด ์žˆ๋‹ค๊ณ  ํ•  ๋•Œ, ๊ฑฐ์Šค๋ฆ„๋ˆ์ด 1์ด๋ผ๋ฉด ์•ก๋ฉด 1์ธ ๋™์ „ ํ•˜๋‚˜๋งŒ ์žˆ์œผ๋ฉด ๋œ๋‹ค.
### ์•„์ด๋””์–ด (Brute-Force)
@dongwooklee96
dongwooklee96 / main.py
Last active August 12, 2021 12:45
7.2.1, 7.2.2
"""
# ๋ฌธ์ œ 7.2: ๋™์ผ ํ•ฉ์œผ๋กœ ๋ฐฐ์—ด ๋ถ„ํ•  ๋ฌธ์ œ
์–‘์˜ ์ •์ˆ˜๋กœ ๊ตฌ์„ฑ๋œ ๋ฐฐ์—ด์ด ์ฃผ์–ด์ง€๋ฉด, ํ•ด๋‹น ๋ฐฐ์—ด์„ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๋ถ„ํ• ํ•˜์—ฌ ๋™์ผํ•œ ํ•ฉ์˜ ๊ฐ’์„ ๊ฐ€์ง€๋Š”์ง€ ํ™•์ธํ•ด๋ณด๋ผ.
์˜ˆ๋ฅผ ๋“ค์–ด์„œ, [1, 2, 3, 4]๊ฐ€ ์žˆ๊ณ  [1, 4], [2, 3]์œผ๋กœ ๋ถ„ํ• ํ•˜๋ฉด ๊ฐ ๋ถ„ํ• ๋œ ๋ฐฐ์—ด ์š”์†Œ์˜ ํ•ฉ์ด 5๋กœ ๋™์ผํ•˜๋‹ค.
### ์•„์ด๋””์–ด (Brute-Force)
1. ๋ฐฐ์—ด์˜ ์ „์ฒด ํ•ฉ์„ 2๋กœ ๋‚˜๋ˆˆ๋‹ค.
2. ์ „์ฒด ํ•ฉ์ด 2๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 0์ด ์•„๋‹ˆ๋ผ๋ฉด ๋ฐ”๋กœ ๊ฑฐ์ง“(False)์„ ๋ฐ˜ํ™˜
"""
# ๋ฌธ์ œ : ๋ฐฐ๋‚ญ ๋ฌธ์ œ
items = {๋ฌผ, ํ†ต์กฐ๋ฆผ, ๋ผ๋””์˜ค, ๊ตฌ๊ธ‰์•ฝ}
values = {7, 5, 3, 4}
weights = {2, 1, 3, 4}
๋ฐฐ๋‚ญ์—๋Š” ๋ฌด๊ฒŒ 5๋งŒํผ์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๊ณ , ๋” ์ด์ƒ์€ ๋„ฃ์„ ์ˆ˜ ์—†๋‹ค.
๋‹ค์–‘ํ•œ ์กฐํ•ฉ์ด ๊ฐ€๋Šฅํ•œ๋ฐ, ๊ทธ์ค‘์—์„œ ๊ฐ€์žฅ ๊ฐ€์น˜๊ฐ€ ๋†’์€ ์กฐํ•ฉ์„ ๊ตฌํ•˜๋ผ.
"""
"""
# ๋ฌธ์ œ : ์ด์ง„ ํŠธ๋ฆฌ ๊ฒ€์ฆ
์ฃผ์–ด์ง„ ์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ๊ฐ€ ์ด์ง„ ํŠธ๋ฆฌ์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ์•„๋‹Œ์ง€๋ฅผ ํ™•์ธํ•˜๋ผ.
- ์ด์ง„ ํŠธ๋ฆฌ๋Š” ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ ๋…ธ๋“œ๋Š” ๋ถ€๋ชจ ๋…ธ๋“œ๋ณด๋‹ค ์ž‘์€ ๊ฐ’์ด ๋ณด์žฅ๋˜๊ณ 
- ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ๋Š” ํ•ด๋‹น ๋…ธ๋“œ๋ณด๋‹ค ํ•ญ์ƒ ํฐ ๊ฐ’์ด๋ผ๋Š” ๋ณด์žฅ์ด ๋œ๋‹ค.
### ์•„์ด๋””์–ด (์žฌ๊ท€)
"""
# ๋ฌธ์ œ : ์ด์ง„ ํŠธ๋ฆฌ ๋ฐ˜์ „
ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ขŒ์šฐ ๋…ธ๋“œ๋ฅผ ๋ฐ”๊พธ๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
### ์•„์ด๋””์–ด (๋ฐ˜๋ณต - ์Šคํƒ)
1. ์Šคํƒ ์ƒ์„ฑ
2. ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ์Šคํƒ์— ์ถ”๊ฐ€
3. ์Šคํƒ์ด ๋น„์–ด์žˆ์„ ๋•Œ ๊นŒ์ง€
"""
# ๋ฌธ์ œ : 3๋ฒˆ์งธ ํฐ ์ˆ˜
- ๋ฐฐ์—ด์—์„œ 3๋ฒˆ์žฌ๋กœ ํฐ ์ˆ˜๋ฅผ ์ฐพ์•„์„œ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•˜์ž.
- ๋งŒ์•ฝ 3๋ฒˆ์งธ๋กœ ํฐ ์ˆ˜๊ฐ€ ์—†๋‹ค๋ฉด ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ๋ฐฐ์—ด์— [1, 2, 3] ์ด ์žˆ๋‹ค๋ฉด 1์„ ๋ฐ˜ํ™˜ํ•˜๊ณ 
3๋ฒˆ์งธ๊ฐ€ ์—†๋Š” ๋ฐฐ์—ด [2, 3] ์ด๋ผ๋ฉด 3์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋œ๋‹ค.
### ์•„์ด๋””์–ด (์ •๋ ฌ)
1. ๋ฐฐ์—ด์„ ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.
@dongwooklee96
dongwooklee96 / main.py
Created August 3, 2021 14:44
set vs dict
import time
import random
import pytest
nums = list(random.randint(1, 100) for _ in range(100))
@pytest.mark.benchmark(
min_rounds=10000000,
"""
# ๋ฌธ์ œ : 3๋ฒˆ์งธ ํฐ ์ˆ˜
- ๋ฐฐ์—ด์—์„œ 3๋ฒˆ์žฌ๋กœ ํฐ ์ˆ˜๋ฅผ ์ฐพ์•„์„œ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•˜์ž.
- ๋งŒ์•ฝ 3๋ฒˆ์งธ๋กœ ํฐ ์ˆ˜๊ฐ€ ์—†๋‹ค๋ฉด ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ๋ฐฐ์—ด์— [1, 2, 3] ์ด ์žˆ๋‹ค๋ฉด 1์„ ๋ฐ˜ํ™˜ํ•˜๊ณ 
3๋ฒˆ์งธ๊ฐ€ ์—†๋Š” ๋ฐฐ์—ด [2, 3] ์ด๋ผ๋ฉด 3์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋œ๋‹ค.
### ์•„์ด๋””์–ด (์ •๋ ฌ)
1. ๋ฐฐ์—ด์„ ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.