ํฐ์คํ ๋ฆฌ ๋ทฐ
<๋ชฉ์ฐจ>
๐ ํ์ด์ฌ์ ์ ๋ ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
โ๏ธ ๋ณํฉ ์ ๋ ฌ(merge sort)์ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ก์ผ๋ฉฐ, ํต ์ ๋ ฌ๋ณด๋ค๋ ๋๋ฆฌ์ง๋ง ์ต์ ์ ๊ฒฝ์ฐ์๋ ์๊ฐ ๋ณต์ก๋ O(NlogN)์ ๋ณด์ฅํ๋ค๋ ํน์ง์ ๊ฐ์ง๋ค.
๐ sort() ์ sorted()
โ๏ธ iterable ๊ฐ์ฒด๋ฅผ ์ ๋ ฌํด์ฃผ๋ ํ์ด์ฌ์ ๋ด์ฅํจ์(built-in function)
โ๏ธ reverse ์์ฑ : False - ์ค๋ฆ์ฐจ์ / True - ๋ด๋ฆผ์ฐจ์
โ๏ธ ์ค๋ฆ ์ฐจ์ : ์ซ์์ ํฌ๊ธฐ๊ฐ ์ปค์ง๋ค. ex. 1, 2, 3, 4
array = [9, 1, 8, 5, 4]
array.sort()
array
Out[4]: [1, 4, 5, 8, 9]
array = [9, 1, 8, 5, 4]
sorted(array)
Out[6]: [1, 4, 5, 8, 9]
# ๋ฆฌ์คํธ์ ๋ฐ์๋์ด ์์ง ์๋ค.
array
Out[7]: [9, 1, 8, 5, 4]
# ๋ค๋ฅธ ๋ฆฌ์คํธ์ ์ ์ฅ์ ํด์ ์ฌ์ฉํด์ผํ๋ค.
result = sorted(array)
result
Out[9]: [1, 4, 5, 8, 9]
โ๏ธ ๋ด๋ฆผ ์ฐจ์ : ์ซ์์ ํฌ๊ธฐ๊ฐ ์์์ง๋ค. ex. 4, 3, 2, 1
array.sort(reverse=True)
array
Out[11]: [9, 8, 5, 4, 1]
๐ ํํ์ ์์๋ก ํ๋ ๋ฆฌ์คํธ ์ ๋ ฌ
โ๏ธ ํ์ด์ฌ์์ ํํ์ ์์๋ก ํ๋ ๋ฆฌ์คํธ๊ฐ ์์ ๋, ๊ทธ ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฌํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ ํํ์ ๊ตฌ์ฑํ๋ ์์์ ์์์ ๋ฐ๋ผ ์ ๋ ฌ๋๋ค.
→ ์ฒซ ๋ฒ์งธ ์์์ ์์์ ๋ง๊ฒ ์ ๋ ฌํ๊ณ , ์ฒซ ๋ฒ์งธ ์์์ ๊ฐ์ด ๊ฐ์ ๊ฒฝ์ฐ ๋ ๋ฒ์งธ ์์์ ์์์ ๋ง๊ฒ ์ ๋ ฌํ๋ฉฐ, ์ด ๊ณผ์ ์ ๋ชจ๋ ์์์ ๋ฐ๋ณต ์ ์ฉํ๋ค.
a = [(5, 1, 5), (3, 1, 9), (3, 5, 5), (5, 1, 5)]
a.sort()
a
Out[12]: [(3, 1, 9), (3, 5, 5), (5, 1, 5), (5, 1, 5)]
โ๏ธ key ์์ฑ์ ๊ฐ์ ๋์ ํ์ฌ ๋ด๊ฐ ์ํ๋ '์กฐ๊ฑด'์ ๋ง๊ฒ ํํ์ ์ ๋ ฌ์ํฌ ์ ์๋ค.
โ๏ธ key ์์ฑ : ์ ๋ ฌ ๊ธฐ์ค์ ๋ช ์
๐ก ๋ ๋ฒ์งธ ์์ ๋ด๋ฆผ์ฐจ์ → ์ธ ๋ฒ์งธ ์์ ์ค๋ฆ์ฐจ์ → ์ฒซ ๋ฒ์งธ ์์ ์ค๋ฆ์ฐจ์
๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ธฐ ์ํด '-'๋ฅผ ๋ถ์ฌ์ค ์ ์์ง๋ง ์ด๋ int ํ์๋ง ํํจ์ ์ฃผ์ํ์.
a.sort(key = lambda x: (-x[1], x[2], x[0]))
a
Out[15]: [(3, 5, 5), (5, 1, 5), (5, 1, 5), (3, 1, 9)]
๐ก ๋ ๋ฒ์งธ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
sorted(a, key = lambda x: x[1])
Out[16]: [(5, 1, 5), (5, 1, 5), (3, 1, 9), (3, 5, 5)]
Ref.
- ์ด๊ฒ์ด ์ฝ๋ฉํ ์คํธ๋ค with ํ์ด์ฌ
'Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ๋น ๋ฅด๊ฒ ์ ๋ ฅ๋ฐ๊ธฐ readline( ) (0) | 2021.03.07 |
---|---|
[Python] ํ(heap) ์ ๊ณต ๋ผ์ด๋ธ๋ฌ๋ฆฌ heapq (0) | 2021.03.06 |
[Python] ์ฝ๋ฉ ํ ์คํธ์ ํ์ํ 6๊ฐ์ง ํ์ด์ฌ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ (1) | 2020.10.24 |
[Python] ์ ์ถ๋ ฅ - input(), print() (0) | 2020.10.24 |
[Python] ํจ์ (function) (0) | 2020.10.23 |