ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90

<๋ชฉ์ฐจ>

    ๐Ÿ“ ํŒŒ์ด์ฌ์˜ ์ •๋ ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

    โœ”๏ธ ๋ณ‘ํ•ฉ ์ •๋ ฌ(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 ํŒŒ์ด์ฌ

    728x90
    ๋Œ“๊ธ€
    ๊ณต์ง€์‚ฌํ•ญ
    ์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€