๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿ’ก

[์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…์ •๋ฆฌ] max() ํ•จ์ˆ˜ ์ •๋ฆฌ_ํŒŒ์ด์ฌ

by @ENFJ 2025. 2. 17.
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€์ค‘ max() ํ•จ์ˆ˜์— ๋Œ€ํ•ด ํ—ท๊ฐˆ๋ ค์„œ ์ •๋ฆฌ!!

๊ธฐ๋ณธ์ ์œผ๋กœ max ํ•จ์ˆ˜๋ผํ•˜๋ฉด max (1,10 ) ์ผ ๊ฒฝ์šฐ 10์ด ๋ฐ˜ํ™˜๋˜๊ณ , max(-10,5) ์ด๋ฉด 5๊ฐ€ ๋ฐ˜ํ™˜๋˜๋Š” 
๋‘๊ฐœ์˜ ์ˆ˜ ์ค‘์—์„œ ๋” ํฐ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋กœ ์•Œ๊ณ  ์žˆ์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ max ์— iterable ๊ฐ์ฒด์ธ ๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ (์ฆ‰ ๋ฐ˜๋ณต๊ฐ€๋Šฅํ•œ๊ฒƒ๋“ค)์ด  max(iterable, key) ์ด๋ฉด ์‚ฌ์šฉ๋ฒ•์ด ์กฐ๊ธˆ ๋‹ค๋ฅด๋‹ค.
๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ์ฐพ๋Š”๊ฑฐ์— ๋Œ€ํ•œ๊ฑด ๋งž์ง€๋งŒ  iterable ๊ฐ์ฒด๋ฅผ ๋Œ€์ƒ์œผ๋กœ key์— ์„ค์ •๋˜์–ด์ง„ ๊ธฐ์ค€์— ์˜ํ•ด ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ์ฐพ๋Š”๋‹ค. 

์•„๋ž˜ ๊ฐœ๋… ๋ฐ ์˜ˆ์‹œ ์ฐธ๊ณ !

 

๐Ÿ“Œ max() ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•

 
numbers = [10, 3, 7, 20, 15] print(max(numbers)) # ๊ฒฐ๊ณผ: 20 (๊ทธ๋ƒฅ ์ตœ๋Œ“๊ฐ’ ์ฐพ์Œ)

โœ… ์—ฌ๊ธฐ์„œ๋Š” ๋ฆฌ์ŠคํŠธ ์ž์ฒด์—์„œ ์ˆซ์ž ๋น„๊ต๋ฅผ ํ•ด์„œ ์ตœ๋Œ“๊ฐ’์„ ์ฐพ์Œ.
โœ… ํ•˜์ง€๋งŒ (๋ฒˆํ˜ธ, ์œ„ํ—˜๋„)์ฒ˜๋Ÿผ ํŠœํ”Œ์ด ๋“ค์–ด ์žˆ์œผ๋ฉด? ์–ด๋–ค ๊ฑธ ๊ธฐ์ค€์œผ๋กœ ๋น„๊ตํ• ์ง€ ์ •ํ•ด์•ผ ํ•จ.

 


 

๐Ÿ“Œmax(iterable, key=๊ธฐ์ค€ํ•จ์ˆ˜) ๋ฌธ๋ฒ•

max()๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฃผ์–ด์ง„ ๋ฆฌ์ŠคํŠธ(์ดํ„ฐ๋Ÿฌ๋ธ”)์—์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์ฐพ๋Š” ํ•จ์ˆ˜์•ผ.

๐Ÿ“Œ max()์˜ ๊ณต์‹ ๋ฌธ๋ฒ•:

max(์ดํ„ฐ๋Ÿฌ๋ธ”, key=๊ธฐ์ค€ํ•จ์ˆ˜)
 
  • ์ดํ„ฐ๋Ÿฌ๋ธ”(iterable): ๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ ๋“ฑ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด
  • key=๊ธฐ์ค€ํ•จ์ˆ˜: ์š”์†Œ๋ฅผ ๋น„๊ตํ•  ๋•Œ ์‚ฌ์šฉํ•  ๊ธฐ์ค€ ํ•จ์ˆ˜

์ฆ‰, key๋Š” ์ •๋ ฌ(๋น„๊ต) ๊ธฐ์ค€์„ ์„ค์ •ํ•˜๋Š” ์—ญํ• ์„ ํ•จ.

 


๐Ÿ“Œ key๋ฅผ ์‚ฌ์šฉํ•œ ์˜ˆ์ œ

1๏ธโƒฃ ๋ฌธ์ž์—ด์—์„œ ๊ฐ€์žฅ ๊ธด ๋‹จ์–ด ์ฐพ๊ธฐ

words = ["apple", "banana", "cherry", "blueberry"] 
longest_word = max(words, key=len) 
print(longest_word) # ๊ฒฐ๊ณผ: "blueberry"
 

โœ… max()๊ฐ€ words ๋ฆฌ์ŠคํŠธ๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉด์„œ len()์„ ์‚ฌ์šฉํ•ด ๋‹จ์–ด ๊ธธ์ด๋ฅผ ๋น„๊ต!
โœ… ์ฆ‰, ๊ฐ€์žฅ ๊ธด ๋ฌธ์ž์—ด์„ ์ฐพ๋Š” ๊ฒƒ!


2๏ธโƒฃ ํŠœํ”Œ ๋ฆฌ์ŠคํŠธ์—์„œ ํŠน์ • ๊ฐ’ ๊ธฐ์ค€์œผ๋กœ ๋น„๊ตํ•˜๊ธฐ

people = [("Alice", 25), ("Bob", 30), ("Charlie", 20)] 
oldest = max(people, key=lambda x: x[1]) 
print(oldest) # ๊ฒฐ๊ณผ: ('Bob', 30)
 

โœ… key=lambda x: x[1] → ํŠœํ”Œ์˜ ๋‘ ๋ฒˆ์งธ ๊ฐ’(๋‚˜์ด)์œผ๋กœ ๋น„๊ต
โœ… ๋‚˜์ด๊ฐ€ ๊ฐ€์žฅ ๋งŽ์€ Bob(30์„ธ) ๊ฐ€ ์„ ํƒ๋จ.


3๏ธโƒฃ ์šฐ๋ฆฌ๊ฐ€ ๊ถ๊ธˆํ–ˆ๋˜ max(Q, key=lambda x: x[1])

 
Q = [(0, 60), (1, 50), (2, 70), (3, 80), (4, 90)] 
result = max(Q, key=lambda x: x[1]) 
print(result) # (4, 90)

โœ… key=lambda x: x[1]
โœ… Q์˜ ๊ฐ ์š”์†Œ์—์„œ ํŠœํ”Œ์˜ ๋‘ ๋ฒˆ์งธ ๊ฐ’(์œ„ํ—˜๋„)์„ ๊ธฐ์ค€์œผ๋กœ ๋น„๊ต
โœ… ์œ„ํ—˜๋„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ (4, 90) ์ด ์„ ํƒ๋จ.


๐Ÿ“Œ ๊ฒฐ๋ก 

โœ” key๋Š” max()์˜ ๋งค๊ฐœ๋ณ€์ˆ˜(๋ฌธ๋ฒ•์ ์ธ ์š”์†Œ)
โœ” key=๊ธฐ์ค€ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋น„๊ต ๊ธฐ์ค€์„ ์ง์ ‘ ์„ค์ • ๊ฐ€๋Šฅ
โœ” lambda๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ํŠœํ”Œ์˜ ํŠน์ • ์š”์†Œ, ๋ฌธ์ž์—ด ๊ธธ์ด ๋“ฑ์„ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Œ.