ํ์ด์ฌ
ํ์ด์ฌ์ ๋ฌธ๋ฒ, ํจ์, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ๋ฒ ๋ฑ์ ๋ํด์ ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ๊ณ ์์ต๋๋ค. (์์ฑ์ค)
โ del ์์ฝ์ด vs remove()
del์ ํจ์๊ฐ ์๋๋ผ ์์ฝ์ด์ด๋ค.
del ์์ฝ์ด
>>> a=[1,2,3]
>>> del a[1]
>>> a
[1,3]
์ฌ๋ฌ๊ฐ์ ์์๋ฅผ ์ญ์ ํ ์๋ ์๋ค.
>>> str_list = ['๊ฐ','๋','๋ค','๋ผ','๋ง']
>>> del str_list[3:]
['๊ฐ','๋','๋ค']
์ฌ์ ์๋ฃํ์์๋ ์ฌ์ฉํ ์ ์๋ค.
>>> d={'one':'ํ๋', 'two':'๋'}
>>> del d['one']
>>> d
{'two':'๋'}
remove()
removeํจ์๋ ๊ฐ์ผ๋ก array์ ์์๋ฅผ ์ญ์ ํ๋ค.
>>> l=[1,2,2,3,3,3]
>>> l.remove(3)
>>> l
[1,2,2,3,3]
3์ ๋ชจ๋ ์ ๊ฑฐํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํ ์ ์๋ค.
>>> for _ in l:
l.remove(3)
>>> l
[1,2,2]
โ roundํจ์
round(number,[, ndigits])
์ฒซ ๋ฒ์งธ ์ธ์ : ๋ฐ์ฌ๋ฆผ ํ๊ณ ์ถ์ ์ซ์
๋ ๋ฒ์งธ ์ธ์ : ๋ํ๋ด๊ณ ์ถ์ ์๋ฆฟ์ (์์์ 2๋ฒ์งธ ๊น์ง ๋ฐ์ฌ๋ฆผ ํ๋ ๊ฒ์ ์ํ๋ฉด 2๋ฅผ ๋ฃ๋๋ค)
๋ง์ฝ, ์๋ตํ๋ฉด ์ฒซ ๋ฒ์งธ ์ธ์ number์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ ์๋ฅผ ๋ฐํํ๋ค
์ด๋ ๋ฐ์ฌ๋ฆผ ํ๋ ค๋ ์๊ฐ ์ฌ๋ฆผ, ๋ด๋ฆผ ํ์ ๋ ๋์ผํ๊ฒ ์ฐจ์ด๋๋ ๊ฒฝ์ฐ ์ง์ ๊ฐ์ผ๋ก ๋ฐ์ฌ๋ฆผ ํ๋ค.
print(round(1.5))
>>> 2
print(round(2.5))
>>> 2
์์์ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง ์ด๋ค.
print(round(-1.5))
>>> -2
print(round(-2.5))
>>> -2
๋ถ๋์์์ ์ ๋ฌธ์
float
์๋ฃํ์ ์ธ ๋ ํญ์ ์ฃผ์ํด์ผ ํ๋ค
>>> 0.1 * 3 == 0.3
False
>>> 1.2 - 0.1 == 1.1
False
>>> 0.1 * 0.1 == 0.01
False
์ปดํจํฐ์์ ๋ถ๋์์์ ์ซ์๋ค์ 2์ง ๋ถ์๋ก ํํ๋๊ธฐ ๋๋ฌธ์ ๊ฝค ๋ง์ ๊ฐ๋ค์ ์ ํํ ํํ๋ ์ ์๋ค.
10์ง์ 0.1์ 2์ง ๋ถ์๋ก ์ ํํ๊ฒ ํํ๋ ์ ์๊ณ 0.0001100110011001100110...๊ณผ ๊ฐ์ด ๋ฌดํ ๋ฐ๋ณต๋๋ค. ๋ฐ๋ผ์ ํน์ ๋นํธ์์ ๋ฉ์ทฌ๋ค ๊ทผ์ฌ๊ฐ์ ์ป๋๋ค
ํด๊ฒฐ์ฑ
decimal.Decimal
>> import decimal
>> decimal.Decimal('0.1') * 3 == decimal.Decimal('0.3')
True
>>> decimal.Decimal('0.3') + 2
Decimal('2.3')
round
>>> round(0.1 + 0.1 + 0.1, 10)==round(0.3,10)
True
>>> 0.1 + 0.1 + 0.1 == 0.3
False
# 0.1 + 0.1 + 0.1 ์ 0.3๊ณผ ๋ค๋ฅด๋ค
>>> decimal.Decimal(0.1 + 0.1 + 0.1)
Decimal('0.3000000000000000444089209850062616169452667236328125')
>>> decimal.Decimal(0.3)
Decimal('0.299999999999999988897769753748434595763683319091796875')
์ฌ์ ์ round()๋ฅผ ์ํํ๋ ๊ฒ์ ๋์์ด ๋์ง ์๋๋ค.
>>> round(0.1,1) + round(0.1,1) + round(0.1,1) == round(0.3,1)
False
โ ์งํฉ ์๋ฃํ(set)
set()์ ๊ดํธ์์ ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฅํ๊ฑฐ๋ ๋ฌธ์์ด์ ์ ๋ ฅํ์ฌ ๋ง๋ค ์ ์๋ค.
>>> s1=set([1,2,3])
>>> s1
{1,2,3}
>>> s2 = set("Hello")
>>> s2
{'e','H','l','o'}
๋น์ด ์๋ ์งํฉ ์๋ฃํ์ s=set()์ผ๋ก ๋ง๋ค ์ ์๋ค.
>>> s1 = set([1, 2, 3, 4, 5, 6])
>>> s2 = set([4, 5, 6, 7, 8, 9])
๊ต์งํฉ ( & )
>>> s1&s2
{4,5,6}
ํฉ์งํฉ ( | )
>>> s1 | s2
{1, 2, 3, 4, 5, 6, 7, 8, 9}
์ฐจ์งํฉ ( - )
>>> s1 - s2
{1, 2, 3}
๊ฐ ์ถ๊ฐํ๊ธฐ (add)
>>> s1=set([1,2,3])
>>> s1.add(4)
>>> s1
{1,2,3,4}
๊ฐ ์ฌ๋ฌ๊ฐ ์ถ๊ฐํ๊ธฐ(update)
>>> s1=set([1,2,3])
>>> s1.update([4,5,6])
>>> s1
{1,2,3,4,5,6}
ํน์ ๊ฐ ์ ๊ฑฐํ๊ธฐ(remove)
์ ๊ฑฐ ํ๋ ค๋ ๊ฐ์ด ์์๊ฒฝ์ฐ KeyError๊ฐ ๋ฐ์
>>> s1=set([1,2,3])
>>> s1.remove(2)
>>> s1
{1, 3}
ํน์ ๊ฐ ์ ๊ฑฐํ๊ธฐ (discard)
์ ๊ฑฐ ํ๋ ค๋ ๊ฐ์ด ์์ด๋ ์ ์์ข ๋ฃ
โ ๋ฌธ์์ด
๋ฌธ์์ด ์๋ฃํ์ immutableํ๋ค.
์ฆ ์์๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค.
>>> a = "Pithon"
>>> a[1]
'i'
>>> a[1] = 'y'
Error๋ฐ์!
replace๋ก ํน์ ๋ฌธ์์ด ์ ๊ฑฐํ๊ธฐ
replace(A, B)
๋ ๋ฌธ์์ด์ A๋ฅผ ๋ชจ๋ B๋ก ๋ณ๊ฒฝํ ๋ฌธ์์ด์ returnํ๋ค.
st='012001202'
new_st=st.replace('0','')
print(new_st)
>>>12122
0์ด ๋ชจ๋ ์ ๊ฑฐ๋ ๋ฌธ์์ด์ ๋ฆฌํด!
์ด๋ st.replace('0','',1)
์ ๊ฐ์ด ์ธ ๋ฒ์งธ ์ธ์์ replaceํ ํ์๋ฅผ ์ง์ ํ ์ ์๋ค.
st='012001202'
new_st=st.replace('0','',1)
print(new_st)
>>>12001202
โ ๋ฆฌ์คํธ
๋ฆฌ์คํธ ๋ํ๊ธฐ(+)
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> a + b
[1, 2, 3, 4, 5, 6]
์์น ๋ฐํ(index)
>>> a = [1,2,3]
>>> a.index(3)
2
>>> a.index(1)
0
์ด๋ ์๋ ๊ฐ์ ๋ฃ์ผ๋ฉด ๊ฐ ์ค๋ฅ(ValueError)๊ฐ ๋ฐ์ํ๋ค.
์์ ์ฝ์ (insert)
>>> a = [1,2,3]
>>> a.insert(0,4)
>>> a
[4,1,2,3]
array.insert(i,x)
array์ ์ํ๋ ์์น i์์ x๋ฅผ ์ถ๊ฐํ๋ค.
pop
pop(0)์ ํธ์ถํ๋ฉด ์ฒซ ๋ฒ์งธ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํ ์ ์๋ค.
extend()
array.extend(iterable)
iterable์ ๊ฐ ์์๋ฅผ ํ๋์ฉ array์ ๋์ ์์๋ก ์ถ๊ฐํ๋ค. append์ ๋ค๋ฅด๊ฒ ๊ดํธ์์ iterable์๋ฃํ๋ง ์ฌ ์ ์๋ค.
join์ ํ์ฉํ ๋ฌธ์์ด ๋ฆฌ์คํธ ์ถ๋ ฅ
๋ฆฌ์คํธ l=['a','b','c','d','e']
๊ฐ ์์๋ ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ๋ ค๋ฉด ๋ณดํต
for i in l:
print(i)
์ด๋ ๊ฒ ํ๋ค.
๋ ๋น ๋ฅด๊ฒ ์ถ๋ ฅํ ์ ์๋ ๋ฐฉ๋ฒ์ด ํ๋ ์๋๋ฐ ๋ฐ๋ก
print('\n'.join(l))
์ด๋ ๊ฒ ํ๋ฉด ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฌ์ง ์๊ณ ๋ ๋น ๋ฅธ ์๋๋ก ์ถ๋ ฅ์ด ๊ฐ๋ฅํ๋ค.
ํ์ง๋ง ๋ฌธ์์ด ๋ฆฌ์คํธ ์ผ๋๋ง ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ์ฃผ์ํด์ผ ํ๋ค!
print(*list)
a=[1,2,3,4,5]
print(*a)
# 1 2 3 4 5
printํ ๋ ๋ฆฌ์คํธ ์์ *๋ฅผ ๋ถ์ฌ์ฃผ๋ฉด ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ์์๋ค๋ง ๋์ด๋๋ค
map๊ณผ lambda๋ฅผ ์ด์ฉํ ๋ฆฌ์คํธ ๋ ๊ฐ ๋ํ๊ธฐ
list1=[1,2,3,4,5]
list2=[6,7,8,9,10]
result=list(map(lambda a,b:a+b,list1,list2))
print(result)
>>> [7, 9, 11, 13, 15]
lambda๋ฅผ ์ด์ฉํด ์์ ๋ด๋ถ์ ๊ฐ๋ผ๋ฆฌ ๋ํ ์ ์๋ค.
์ด๋ result=[map(lambda a,b:a+b,list1,list2)]
๋ก ํ๋ฉด ์๋๋ค.
l=list(map(int,input().split()))
์ ๋๊ณ l=[map(int,input().split())]
์ ์๋๋ ๊ฒ ์ฒ๋ผ..
zipํจ์๋ฅผ ์ด์ฉํ ์ ์นํ๋ ฌ
l=[[1,2,3],[4,5,6]]
print(list(zip(*l)))
>>> [(1, 4), (2, 5), (3, 6)]
2์ฐจ์ ๋ฐฐ์ด ์ต๋๊ฐ ์ฐพ๊ธฐ
mapํจ์๋ฅผ ํ์ฉํ๋ฉด 2์ฐจ์ ๋ฐฐ์ด์ ์ต๋๊ฐ์ ์ฐพ์ ์ ์๋ค.
vertices = [
[1, 7, 12],
[4, 7, 13],
[1, 5, 17],
[3, 5, 20],
[2, 4, 24],
[1, 4, 28],
[3, 6, 37],
[5, 6, 45],
[2, 5, 62],
[1, 2, 67],
[5, 7, 73],
]
max_value = max(map(max, vertices))
print(max_value)
>>>73
โ ์ฌ์
Key๋ immutable
Key์ ๋ฆฌ์คํธ๋ฅผ ์ธ ์ ์๋ค.๋ฆฌ์คํธ๊ฐ ๋ณํ๋(mutable)ํ ๊ฐ์ด๊ธฐ ๋๋ฌธ
Key์ ํํ์ ์ธ ์ ์๋ค. ํํ์ ๋ณํ์ง ์๋(immutable)ํ ๊ฐ์ด๊ธฐ ๋๋ฌธ
Key๊ฐ ์๋์ง ์กฐ์ฌํ๊ธฐ(in)
>>> a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
>>> 'name' in a
True
>>> 'email' in a
False
(key๊ฐ ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ) a.get(key) vs a[key]
a.get(k) : None์ ๋ฆฌํด
a[k] : ์ค๋ฅ๋ฅผ ๋ฐ์
์ด๋ None๋์ ๋ฆฌํดํ ๋ํดํธ ๊ฐ์ ์ค์ ๊ฐ๋ฅ
a.get(k,'hello')
None๋์ 'hello'๋ฅผ ๋ฆฌํด
์ต์ value๋ฅผ ๊ฐ์ง๋ key๊ฐ ์ฐพ๊ธฐ
dic={1:99,2:98,3:97}
min(dic)
>>> 1
๋์ ๋๋ฆฌ์ minํจ์๋ฅผ ์ ์ฉํ๋ฉด key๊ฐ ์ค ๊ฐ์ฅ ์์ key๋ฅผ ๋ฆฌํดํ๋ค
dic={1:99,2:98,3:97}
min(dic,key=dic.get)
>>> 3
minํจ์์ key๋ก dic.get ์ฆ value๋ฅผ ์ค์ ํ๋ฉด
value๊ฐ ๊ฐ์ฅ์์ key๋ฅผ ๋ฆฌํดํ๋ค
์ฌ์ ์ ๋ ฌํ๊ธฐ
์ฌ์ ์ ๋ํด sortedํจ์๋ฅผ ์ํ ํ ๋ items()ํจ์๋ฅผ ๊ผญ ์จ์ค์ผ ํ๋ค!!
dic = {'pop': 3100, 'classic': 1450, 'trot':620}
print(sorted(dic.items(),key=lambda x:x[1]))
print(dict(sorted(dic.items(),key=lambda x:x[1])))
>>> [('trot', 620), ('classic', 1450), ('pop', 3100)]
>>> {'trot': 620, 'classic': 1450, 'pop': 3100}
โ split ํจ์
๋ฌธ์์ด.split() : ๋ฌธ์์ด์ ์ผ์ ํ ๊ท์น์ผ๋ก ์๋ผ์ ๋ฆฌ์คํธ๋ก ๋ง๋ค์ด ์ค๋ค.
โ reverse, reversed, [::-1]
- revesre: ๋ฆฌ์คํธ๋ฅผ ๊ฑฐ๊พธ๋ก ๋ค์ง์ (
l.reverse()
) - reversed : ๋ฌธ์์ด, ๋ฆฌ์คํธ๋ฅผ ๊ฑฐ๊พธ๋ก ๋ค์ง๊ณ ๋ค์ง์ ๊ฐ์ ๋ฆฌํด (
reversed_s=revesred(s)
)์ถ๋ ฅ๋ฐฉ๋ฒ : print(''.join(reversed(s)))
- [::-1] : ์ฒ์๋ถํฐ ๋๊น์ง ๊ฑฐ๊พธ๋ก
- [3::-1] : 3๋ฒ ์ธ๋ฑ์ค๋ถํฐ 0๋ฒ ์ธ๋ฑ์ค ๊น์ง ๊ฑฐ๊พธ๋ก
โ sort() ์ sorted()
sort() : ๋ฆฌ์คํธํ์ ๋ฉ์๋, ๋ฆฌ์คํธ ์๋ณธ๊ฐ์ ์ง์ ์์
sorted() : ๋ด์ฅ ๋ฉ์๋, ์๋ณธ๊ฐ์ ๊ทธ๋๋ก ๋๊ณ ์ ๋ ฌํ ๊ฐ์ ๋ฆฌํด
์ฐธ๊ณ : map๊ฐ์ฒด๋ฅผ sorted๋ก ๊ฐ์ธ๋ฉด ๋ฆฌ์คํธ๊ฐ ๋ฆฌํด๋๋ค.
a1=[6,3,9]
a2 = a1.sort()
print(a1)
print(a2)
# [3,6,9]
# None
a1=[6,3,9]
a2=sorted(a1)
print(a1)
print(a2)
# [6,3,9]
# [3,6,9]
sort()์ sorted()์์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ ์ ํ๋ค๋ฉด reverse๋งค๊ฐ๋ณ์์ True๋ฅผ ์ฃผ๋ฉด ๋๋ค.a1.sort(reverse=True)
, sorted(a1,reverse=True)
sort()์ sorted() ๋ชจ๋ ์ด์ฐจ์ ๋ฆฌ์คํธ์ ๋ํด์๋ ์ ๋ ฌ์ ์ํํ๋ค.
[(3, 4), (1, 1), (1, -1), (2, 2), (3, 3)]
์์ ๊ฐ์ 2์ฐจ์ ๋ฆฌ์คํธ์ ์ ๋ ฌ์ ์ํํ ์ ์๋ค.
[(1, -1), (1, 1), (2, 2), (3, 3), (3, 4)]
0๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๊ณ , 0๋ฒ์งธ ์ธ๋ฑ์ค์ ๊ฐ์ด ๊ฐ์๊ฒฝ์ฐ 1๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๋ค!
key ๋งค๊ฐ๋ณ์๋ก ์ ๋ ฌ ๊ธฐ์ค๊ฐ์ ์ง์ ํ ์ ์๋ค
l.sort(key=lambda x: (x[1]))
lambda๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฌ ๊ธฐ์ค์ ์ ํด์ค ์ ์๋ค.
์ ์ฝ๋๋ ๋ ๋ฒ์งธ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ์ ์ํํ๋ค.
l.sort(key=lambda x: (x[1],x[0]))
๋ ๋ฒ์งธ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๊ณ , ๊ฐ์๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ก๋ ฌํ๋ ๊ฒ์ด๋ค.
l.sort(key=lambda x: (x[0],-x[1]))
์ฒซ ๋ฒ์งธ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๊ณ , ๋ ๋ฒ์งธ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๋ ๊ฒ์ด๋ค.
l.sort(key=lambda x: len(x))
๊ธธ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๋ ๊ฒ์ด๋ค.
โ ์๋ฃํ์ ์ฐธ๊ณผ ๊ฑฐ์ง
- 1 : ์ฐธ
- [1,2,3] : ์ฐธ
- "python" : ์ฐธ
- [],(),{} : ๊ฑฐ์ง
- "" : ๊ฑฐ์ง
- 0 : ๊ฑฐ์ง
- None : ๊ฑฐ์ง
โ Counter ํด๋์ค
๋ฐ์ดํฐ์ ๊ฐ์๋ฅผ ์ ๋ ์ ์ฉํ collections ๋ชจ๋์ Counter ํด๋์ค์ด๋ค.
from collections import Counter
print(Counter('hello world'))
# Counter({'l': 3, 'o': 2, 'h': 1, 'e': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1})
๋์ ๋๋ฆฌ ํํ๋ก ๋ฐํ ๋๊ธฐ๋๋ฌธ์, ๋ฃจํ ํํ๋ก ๋๋ฆด ์ ๋ ์๋ค.
value='hello world'
countValue=Counter(value)
for key,value in countValue.items():
print(key,':',value)
h : 1
e : 1
l : 3
o : 2
: 1
w : 1
r : 1
d : 1
์ถ๊ฐ๋ก most_common() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์์์์๋ฅผ ๋ฐํ ํ ์๋ ์๋ค.
from collections import Counter
print(Counter('hello world').most_common())
# [('l', 3), ('o', 2), ('h', 1), ('e', 1), (' ', 1), ('w', 1), ('r', 1), ('d', 1)]
์ด๋ ์ธ์๋ก ์ซ์ k๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ์์ k๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ป์ ์๋ ์๋ค.
from collections import Counter
print(Counter('hello world').most_common(1))
# [('l', 3)]
โ find() vs index()
find()
๋ฌธ์์ด์์ ์ฌ์ฉ ๊ฐ๋ฅ
๋ฆฌ์คํธ, ํํ, ๋์ ๋๋ฆฌ์์ ์ฌ์ฉ ๋ถ๊ฐ๋ฅ
์ฐพ๋ ๋ฌธ์๊ฐ ์๋ ๊ฒฝ์ฐ -1์ ์ถ๋ ฅindex()
๋ฌธ์์ด, ๋ฆฌ์คํธ, ํํ์์ ์ฌ์ฉ ๊ฐ๋ฅ
๋์ ๋๋ฆฌ์์ ์ฌ์ฉ ๋ถ๊ฐ๋ฅ
์ฐพ๋ ๋ฌธ์๊ฐ ์๋ ๊ฒฝ์ฐ ValueError ๋ฐ์
โ Queue vs deque(๋ฑ)
deque๋ Queue์ ๋ค๋ฅด๊ฒ ์ธ๋ฑ์ฑ์ด ๊ฐ๋ฅํ๋ค. (๋ฉ์๋ ์ฌ์ฉ๋ฒ๋ ๋ฆฌ์คํธ์ ๋งค์ฐ ํก์ฌ)
Queue : put(), get()
deque : append(),pop()
deque(๋ฑ) ๋ฉ์๋(method)
- deque.append(item): item์ ๋ฐํฌ์ ์ค๋ฅธ์ชฝ ๋์ ์ฝ์ ํ๋ค.
- deque.appendleft(item): item์ ๋ฐํฌ์ ์ผ์ชฝ ๋์ ์ฝ์ ํ๋ค.
- deque.pop(): ๋ฐํฌ์ ์ค๋ฅธ์ชฝ ๋ ์๋ฆฌ๋จผํธ๋ฅผ ๊ฐ์ ธ์ค๋ ๋์์ ๋ฐํฌ์์ ์ญ์ ํ๋ค.
- deque.popleft(): ๋ฐํฌ์ ์ผ์ชฝ ๋ ์๋ฆฌ๋จผํธ๋ฅผ ๊ฐ์ ธ์ค๋ ๋์์ ๋ฐํฌ์์ ์ญ์ ํ๋ค.
- deque.extend(array): ์ฃผ์ด์ง ๋ฐฐ์ด(array)์ ์ํํ๋ฉด์ ๋ฐํฌ์ ์ค๋ฅธ์ชฝ์ ์ถ๊ฐํ๋ค.
- deque.extendleft(array): ์ฃผ์ด์ง ๋ฐฐ์ด(array)์ ์ํํ๋ฉด์ ๋ฐํฌ์ ์ผ์ชฝ์ ์ถ๊ฐํ๋ค.
- deque.remove(item): item์ ๋ฐํฌ์์ ์ฐพ์ ์ญ์ ํ๋ค.
- deque.rotate(num): ๋ฐํฌ๋ฅผ num๋งํผ ํ์ ํ๋ค(์์๋ฉด ์ค๋ฅธ์ชฝ, ์์๋ฉด ์ผ์ชฝ).
- len(deque): deque์ ํฌ๊ธฐ๋ฅผ ์๋ ค์ค๋ค.
โ ์ฃผ์ ์ฐ์ฐ์ ์๊ฐ๋ณต์ก๋
๋ฆฌ์คํธ
- append : O(1)
- pop()=pop(-1) : O(1)
- len(l) : O(1)
- clear() : O(1)
- l[a:b] : O(b-a)
- pop(0), pop(i) : O(N)
- insert, delete, remove : O(N)
- sort : O(N Log N)
- extend : O(len(โฆ)) ํ์ฅ ๊ธธ์ด์ ๋ฐ๋ผ
โ ๋ฐ์ดํฐ ํฌ๊ธฐ์ ๋ฐ๋ฅธ ์ ํฉํ ๋ณต์ก๋
N ; ๋ฐ์ดํฐ ํฌ๊ธฐ
N < 500; ์๊ฐ ๋ณต์ก๋ O(N*3)
N < 2,000; ์๊ฐ ๋ณต์ก๋ O(N*2)
N < 10,000; ์๊ฐ ๋ณต์ก๋ O(NlogN)
N < 10,000,000; ์๊ฐ ๋ณต์ก๋ O(N)
'๐์ธ์ด:Language' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
java (0) | 2024.01.05 |
---|