๋ถ๋ฅ : ์ ๋ ฌ
keypoint : python lambda, sort(key= )
code
# n ๋ฒ์ ์ซ์์
๋ ฅ์ ๋ฐ์ต๋๋ค.
n = int(input())
# ์ขํ๋ฅผ ์ ์ฅํ ๋ฆฌ์คํธ
coor = []
for i in range(0,n):
a,b = input().split(' ')
coor.append([int(a),int(b)])
#๋ฆฌ์คํธ์ n ๊ฐ์ ์ขํ๋ฅผ ์
๋ ฅ๋ฐ๋๋ฐ
#coor.append(list(map(int,input().split(' ')) ์ผ๋ก ๋์ฒดํ ์ ์์ต๋๋ค.
#lambda ์ ๊ฐ๋
์ ์์์ผ ํ๋๋ฐ ์ด๊ฑด ์๋์์ ๋ฐ๋ก ๋ค๋ฃจ๊ฒ ์ต๋๋ค.
coor.sort(key=lambda x: (x[1],x[0]))
for coord in coor:
print(coord[0], coord[1])
lambda
๋๋ค๋ ํ์ด์ฌ์์ ์ค์ํ๊ฒ ์ฌ์ฉ๋๋ ํจ์์ ๋๋ค.
lambda ์ธ์ : ํํ์
๋๋ค๋ ๋ค๋ฅธ ํจ์์ ๋ฌ๋ฆฌ def ๋ก ์ ์ธํ์ง ์๊ณ ์ธ๋ผ์ธ์ผ๋ก ์ ์ธํ๊ณ ์ฌ์ฉํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์๋ฅผ๋ค์ด
def add(x, y):
return x+y
๋ผ๋ ํจ์๊ฐ ์๋ค๋ฉด ๋๋ค๋ก ์๋์ ๊ฐ์ด ํํํ ์ ์์ต๋๋ค.
add = lambda x, y: x+y
๋ณดํต์ map ์ด๋ sorted ์ ๊ฐ์ด ์ฌ์ฉ๋๊ฒ ๋๋๋ฐ ์ด๋ฒ ๋ฌธ์ ์์ ํ์ฉํ ๊ฒ ์ฒ๋ผ sort ์ ํจ๊ป ์ฌ์ฉํด๋ณด๊ฒ ์ต๋๋ค.
sort() ํจ์๋ ํด๋น ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฌํ๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ key ๋ผ๋ ์ธ์๋ฅผ ํ์ฉ ํ ์ ์๋๋ฐ list ์์ key ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ค ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ ๊ฒ์ธ์ง๋ฅผ ๋ํ๋ผ ์ ์์ต๋๋ค.
my_list = ['apple', 'banana', 'cherry']
my_list.sort(key= lambda x: len(x))
๋ผ๊ณ ํ๋ค๋ฉด my_list ๋
['apple', 'cherry', 'banana']
๋ก ์ ์ฅ๋ฉ๋๋ค. ์ด ์ฒ๋ผ key ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ค ๊ฐ์ ํตํด ์ ๋ ฌํ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํ ์ ์๋ค.
์ฐ๋ฆฌ ๋ฌธ์ ์์๋
coor.sort(key=lambda x: (x[1],x[0]))
๋ก key ์ lambda ํจ์๋ฅผ ์ฌ์ฉํ๋๋ฐ lambda x : x[1],x[0] ์
def _key_function(x):
return (x[1],x[0])
๊ณผ ๊ฐ๋ค.
์ฆ x[1] ๊ณผ x[0] ์ด ์ ๋ ฌ ๊ธฐ์ค์ด๋ผ๋ ๊ฒ์ธ๋ฐ, ์ด๋ x[1] ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ํ๊ณ ๋ง์ฝ x[1] ๊ฐ์ด ๊ฐ๋ค๋ฉด x[0] ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ํ๊ฒ ๋๋ค.
์ด๊ฑด ๊ทธ๋ฅ ์ธ์ฐ์!
'Develop > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 1620) ๋๋์ผ ํฌ์ผ๋ชฌ ๋ง์คํฐ ์ด๋ค์ [ Python, dictionary, sys.stdin.readline().strip() ] (0) | 2025.01.06 |
---|---|
๋ฐฑ์ค 1018) ์ฒด์คํ ๋ค์ ์น ํ๊ธฐ[Python] (0) | 2024.10.14 |
๋ฐฑ์ค 1152) ๋จ์ด์๊ฐ์ [Python] (0) | 2024.09.04 |
๋ฐฑ์ค 10890) ์ํ๋ฒณ ์ฐพ๊ธฐ [Python] (0) | 2024.08.24 |