Develop/Algorithm

๋ฐฑ์ค€ 11651) ์ขŒํ‘œ ์ •๋ ฌํ•˜๊ธฐ 2 [ python , lambda ]

proggg 2024. 12. 10. 22:52
728x90

 

๋ถ„๋ฅ˜ : ์ •๋ ฌ

 

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] ์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์„ ํ•˜๊ฒŒ ๋œ๋‹ค.

 

์ด๊ฑด ๊ทธ๋ƒฅ ์™ธ์šฐ์ž! 

728x90