1๏ธโฃ ์๊ณ ๋ฆฌ์ฆ์ ์๋ฏธ
โ ์ ์ฌ ์ํ์์์ ์๊ณ ๋ฆฌ์ฆ
๊ฐ๋ฐ์ ๋ฅ๋ ฅ ํ๊ฐ๋ฅผ ์ํ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ
์๋ฃ์ ๋ ผ๋ฆฌ๋ฅผ ์ด์ํ ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ ๋ฑ์ผ๋ก ๊ตฌํ
ex. ์์ ํ์, ์ด์ง ํ์
โ ๋ฐ์ดํฐ ๋ถ์, ํต๊ณ, ๋จธ์ ๋ฌ๋์์์ ์๊ณ ๋ฆฌ์ฆ
๋ชจ๋ธ๋ง๊ณผ ๊ทธ ๋ถ์ ๊ณผ์ ์์์ ๋ฐฉ๋ฒ๋ก
๋ฐ์ดํฐ ๊ธฐ๋ฐ ์ํ์ ๊ณ์ฐ์ผ๋ก ๊ตฌํ
ex. ์ ํํ๊ท, ๋ฅ๋ฌ๋ ์๊ณ ๋ฆฌ
2๏ธโฃ ๋ฐ์ดํฐ ๋ถ์๊ฐ๊ฐ ํ๋ก๊ทธ๋๋ฐ์ ๊ณต๋ถํด์ผ ํ๋ ์ด์
๊ฐ๋จํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ ์์ฒญ์ด๋ ํ์ ์์ด, ๋ค๋ฅธ ๋ฆฌ์์ค ํฌ์ฌํ์ง ์๊ณ ํด๊ฒฐํ ์ ์๋๋ก
์๊ณ ๋ฆฌ์ฆ, ํ๋ก๊ทธ๋๋ฐ ๋ฅ๋ ฅ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ฌด๋ฅผ ํจ์จ์ ์ผ๋ก ๊ฐ์ ํ๊ฑฐ๋ ์ ๋ฌด ๋ฒ์๋ฅผ ํ์ฅํ ์ ์๋๋ก
Q. ์ฐ๋ฆฌ์๊ฒ ์ฑGPT๊ฐ ๋ง๋ค์ด์ฃผ๋ ์ฝ๋๊ฐ ์๋๋ฐ์? ๐ง
A. ์ฑGPT๋ ์ฐ๋ฆฌ๊ฐ ์ฒํ ๋งฅ๋ฝ์ ๊ณ ๋ คํ์ง ์๊ณ , ์ ๋ต๋ง ์ ์ฌํ๊ฒ ๋ง๋ค์ด ์ค๋ค. ๋ฐ๋ผ์ ์์ฉ๋ ฅ์ ํค์ธ ์ ์๋ค.
3๏ธโฃ ์๋ฃ๊ตฌ์กฐ
์๋ฃ๋ฅผ ๋ด๋ ๊ตฌ์กฐ
โก๏ธ ์๋ฃํ์ ํน์ง์ ๋ง์ถฐ ๊ทธ๋ฆ์ ๋ด๋ ๊ฒ!
์๋ฃ๊ตฌ์กฐ์์ ๋ฑ์ฅํ๋ ๊ฐ๋ (concept)๋ค์ ๊ฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ง์ถฐ์ ์๋กญ๊ฒ ๋ถ๋ฆผ
ex. Array(๊ฐ๋ ) - List(ํ์ด์ฌ)
โ ํ์ต ๋ชฉํ
๋ฐ์ดํฐ ๋ถ์์ ์ฐ์ผ ๋งํ ํต์ฌ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐฐ์ฐ๊ณ , ์ด๋ฅผ ํ๋ก๊ทธ๋๋ฐ์ฝ๋์์ ๋น์ถ์ด ์ ์ฉํด๋ณด์ ~ !
4๏ธโฃ ๋ฐฐ์ด (Array)
์ฐ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ๋ก, ์ธ๋ฑ์ค์ ๋์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ
์ถ๊ฐ/์ญ์ ์ฐ์ฐ์ด ๋๋ฆผ
โ ๋ํ์ด 3์ฐจ์ ๋ฐฐ์ด ๋ง๋ณด๊ธฐ
โ ์๊ณ ๋ฆฌ์ฆ์ ํจ์จ์ฑ
์ฝ๋ฉ์ ์ ํ๋ค
= ์๊ฐ โฌ๏ธ ์ฌ์ฉ ๋ฉ๋ชจ๋ฆฌ โฌ๏ธ
โ ์๊ฐ๋ณต์ก๋๋ฅผ ์ธก์ ํ๋ ๋ฐฉ๋ฒ
๋น ์ค ํ๊ธฐ๋ฒ(Big O Notation)
์ ๊ทผ ํ๊ธฐ๋ฒ - ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์
์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์ . ์ ๊ทผ ํ๊ธฐ๋ฒ(ๆผธ่ฟ ่กจ่จๆณ, ์์ด: asymptotic notation)์ ์ด๋ค ํจ์์ ์ฆ๊ฐ ์์์ ๋ค๋ฅธ ํจ์์์ ๋น๊ต๋ก ํํํ๋ ์๋ก ๊ณผ ํด์ํ์ ๋ฐฉ๋ฒ์ด๋ค. ์๊ณ ๋ฆฌ์ฆ์ ๋ณต์ก๋๋ฅผ
ko.wikipedia.org
โ ํ์ด์ฌ ์๊ฐ๋ณต์ก๋
TimeComplexity - Python Wiki
This page documents the time-complexity (aka "Big O" or "Big Oh") of various operations in current CPython. Other Python implementations (or older or still-under development versions of CPython) may have slightly different performance characteristics. Howe
wiki.python.org
โ ์๊ฐ๋ณต์ก๋๋ฅผ ์ ๋ถ ๊ณ ๋ คํ์ฌ ์ฝ๋๋ฅผ ์์ฑํด์ผ ํ๋๊ฐ?
์๋. ์ฝ๋ ์์ฑ์ ์ฐ์ ์์ โคต๏ธ
(๊ฒ์) ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋์ง ์ฐพ์๋ณด๊ธฐ
(์ ์ฉ) ์๋ค๋ฉด, ์ด๋ค ํจ์/์๋ฃํ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผ ํ๋์ง ์ฐพ์๋ณด๊ธฐ
ใใ ex. List ๊ธธ์ด - for ๋ฐ๋ณต๋ฌธ ์ฌ์ฉ โ len() ํจ์ ์ฌ์ฉโญ
(์์ฑ) ์๋ค๋ฉด, ์ฌ์ฉ์ ์ ์ ํจ์๋ก ๋ง๋ค๊ธฐ
(์ต์ ํ) ๋์ฉ๋ ๋ฐ์ดํฐ์ ์์ฃผ ์ฌ์ฉํ ๊ฒ ๊ฐ๋ค๋ฉด, ์ฑ๋ฅ์ ๊ณ ๋ คํ ์ฝ๋ ์์ฑํ๊ธฐ
โ ์ค์ ๋ฌธ์ - ๋๋์ด ๋จ์ด์ง๋ ์ซ์ ๋ฐฐ์ด
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
# ๋ฌธ์ ์ดํด > ์ด๋ป๊ฒ ๋ก์ง ์ธ์ธ์ง ๊ณ ๋ฏผ > ์ฝ๋ฉ์ผ๋ก ๊ตฌํ
# 1. ๊ฐ array์ element ์ค divisor๋ก ๋๋์ด ๋จ์ด์ง๋ ๊ฐ
# = array ์ ๊ฐ element์ divisor ์ฐ์ฐ์ ํ๋๊ตฌ๋. ํ๋ํ๋. ๊ทธ๋ผ for๋ฌธ ์ฐ๊ฒ ๊ตฐ
# 2. ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
# 3. ๋๋์ด ๋จ์ด์ง๋ ๊ฒ ์๋ค๋ฉด, -1 ๋ฐํ
# = if๋ฌธ ์ฐ๊ฒ ๊ตฌ๋, ์์ธ์ฒ๋ฆฌ๊ฐ ์๊ฒ ๊ตฌ๋
# ์ ํ์ฌํญ
#
# ์์ฐ์ - divison by zero ์๋ฌ๊ฐ ์๋๋ฐ ์ด๊ฑด ๊ตณ์ด ์์ธ์ฒ๋ฆฌํ ํ์๊ฐ ์๊ตฌ๋.
# array - ๋น์ด ์๋ ๋ฐฐ์ด์ด ๋ค์ด์ค์ง ์๋๋ค.
def solution(arr, divisor):
answer = []
# for ๋ฐ๋ณต์ ํตํ ์ฐ์ฐ
for i in arr:
if i % divisor == 0:
answer.append(i)
# ์์ธ ์ฒ๋ฆฌ
if len(answer) == 0:
answer = [-1]
# ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
return list(sorted(answer))
5๏ธโฃ ์ฐ๊ฒฐ ๋ฆฌ์คํธ (Linked List)
์ฐ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ์๋ฃ๊ตฌ์กฐ
๋ฐฐ์ด์ ๋จ์ (์ถ๊ฐ, ์ญ์ ์๋)๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ณ ์ *ํญ์ ๋ฐฐ์ด๋ณด๋ค ์ข๋ค๋ ๊ฒ์ ์๋
but ์ถ๊ฐ/์ญ์ ์ฐ์ฐ์ ๋น ๋ฅด์ง๋ง ๊ฒ์์ด ๋๋ฆผ!
6๏ธโฃ ํ์ ์คํ
โ ํ(Queue)
FIFO(First In First Out) ๋ฐฉ์ = ์ ์ ์ ์ถ
โ ์คํ(Stack)
LIFO(Last In First Out) ๋ฐฉ์ = ์๊ธฐ like ํ๋ง๊ธ์ค
๋ค์ด์ค๋ ๊ฒ push, ๋นผ๋ ๊ฒ pop
#20 [C ์๋ฃ๊ตฌ์กฐ] ์คํ์ผ๋ก ํ ์ ์๋ ๋ฌธ์ ๋ค
์คํ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋น์ฐํ ์คํ์ด ์ธ๋ชจ ์๋ ๋ถ์ผ๊ฐ ์์ด์๋ค!! ์ง์ง ์ด ํํธ์์๋ ์คํ์ด ์ด๋ป๊ฒ ํ์ฉ๋๋์ง, ์ด๋ค ๋ฐฉ์์ ํตํด ํ์ฉํ ์ ์๋์ง ์์๋ณด์. ์์ ๊ดํธ ๊ฒ์ฌ ์์ ๊ดํธ ๊ฒ์ฌ
claude-u.tistory.com
โ ์คํ ํ์ฉ์ ๋ํ์ ์์: ์ฌ๋ฐ๋ฅธ ๊ดํธ ์์
์ ์ ์์ - (a + b) * c โก๏ธ ์ต์ข ์ ์ผ๋ก ์คํ ๊ตฌ์กฐ๊ฐ ๋น์ด ์์
๋น์ ์ ์์ - { (a + b} ) * c * d โก๏ธ ๊ดํธ์ ์์์ ์์ด ์ ๋ง์
ํ๋ก๊ทธ๋๋จธ์ค > ์คํ/ํ > ์ฌ๋ฐ๋ฅธ ๊ดํธ
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
# ์ฌ๋ฐ๋ฅธ ๊ดํธ
# list ์๋ฃํ์ผ๋ก stack์ ์ ์ฌํ๊ฒ ๊ตฌํ (LIFO)
# ๋ฌธ์์ด s๋ฅผ ๋ฐ๋ณตํด์ ํ์ธ
# ์ด๋ฆฐ ๊ดํธ - ์ผ๋จ stack์ ๋ฃ๊ธฐ
# ๋ซํ ๊ดํธ - ํ์ฌ stack์ ๋ค์ด ์๋ ์ต์๋จ ์๋ฃ์ ๋น๊ตํ์ฌ ์์ด ๋๋ฉด pop
def solution(s):
answer = True
stack = []
for i in s:
if i == '(':
stack.append(i)
else:
if stack:
stack.pop()
else:
return False
if stack:
return False
else:
return True
7๏ธโฃ ๊ด๋ จ ํฌ์คํธ
240108 MON ์๊ณ ๋ฆฌ์ฆ ํน๊ฐ 1/3 ์๋ฃ๊ตฌ์กฐ (1)
1๏ธโฃ ์๊ณ ๋ฆฌ์ฆ์ ์๋ฏธ โ ์ ์ฌ ์ํ์์์ ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋ฐ์ ๋ฅ๋ ฅ ํ๊ฐ๋ฅผ ์ํ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ ์๋ฃ์ ๋ ผ๋ฆฌ๋ฅผ ์ด์ํ ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ ๋ฑ์ผ๋ก ๊ตฌํ ex. ์์ ํ์, ์ด์ง ํ์ โ ๋ฐ์ดํฐ ๋ถ์, ํต๊ณ,
heleownae.tistory.com
240109 TUE ์๊ณ ๋ฆฌ์ฆ ํน๊ฐ 2/3 ์๋ฃ๊ตฌ์กฐ (2)
1๏ธโฃ ํด์ ํ ์ด๋ธ (Hash Table) Key:Value ํํ์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์์ด ์ฌ์ด ํํ๋ก ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ ์๋ฃ๊ตฌ์กฐ์์ ๋ฑ์ฅํ๋ ๊ฐ๋ (concept)๋ค์ ๊ฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ง์ถฐ์ ์๋กญ๊ฒ ๋ถ๋ฆผ ex. Array(๊ฐ๋ ) - L
heleownae.tistory.com
241010 WED ์๊ณ ๋ฆฌ์ฆ ํน๊ฐ 3/3 ์๊ณ ๋ฆฌ์ฆ
1๏ธโฃ ๊ทธ๋ฆฌ๋ (Greedy) ๋งค์๊ฐ ๊ฐ์ฅ ์ข์๋ณด์ด๋ ๊ฒ์ ์ ํํ์ฌ ๋ฌธ์ ๋ฅผ ํ์ด๊ฐ๋ ๋ฐฉ๋ฒ ๋ฐฑ์ค > 5585 ๊ฑฐ์ค๋ฆ๋ 5585๋ฒ: ๊ฑฐ์ค๋ฆ๋ ํ๋ก๋ ์์ฃผ JOI์กํ์ ์์ ๋ฌผ๊ฑด์ ์ฐ๋ค. JOI์กํ์ ์๋ ์๋์ผ๋ก 500์, 100
heleownae.tistory.com