๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐˜ผ๐™ก๐™œ๐™ค๐™ง๐™ž๐™ฉ๐™๐™ข/๐™‹๐™ง๐™ค๐™œ๐™ง๐™–๐™ข๐™ข๐™š๐™ง๐™จ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 'ํŠน์ดํ•œ ์ •๋ ฌ' ํŒŒ์ด์ฌ ํ’€์ด

by beomcoder 2023. 2. 16.
728x90
๋ฐ˜์‘ํ˜•
 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

"""
์ •์ˆ˜ n์„ ๊ธฐ์ค€์œผ๋กœ n๊ณผ ๊ฐ€๊นŒ์šด ์ˆ˜๋ถ€ํ„ฐ ์ •๋ ฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 
์ด๋•Œ n์œผ๋กœ๋ถ€ํ„ฐ์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ™๋‹ค๋ฉด ๋” ํฐ ์ˆ˜๋ฅผ ์•ž์— ์˜ค๋„๋ก ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. 
์ •์ˆ˜๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด numlist์™€ ์ •์ˆ˜ n์ด ์ฃผ์–ด์งˆ ๋•Œ numlist์˜ ์›์†Œ๋ฅผ n์œผ๋กœ๋ถ€ํ„ฐ
๊ฐ€๊นŒ์šด ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•œ ๋ฐฐ์—ด์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.
"""

def solution(numlist, n):
    rank = sorted([[value, distance:=abs(value-n)] for value in numlist], key = lambda x: (x[1],-x[0]))
    return [v[0] for v in rank]
    
 """
 ํ’€๊ณ  ๋‚˜์„œ ๋‹ค๋ฅธ ํ’€์ด๋ฅผ ๋ณด๋‹ˆ ์ฒ˜๋ฆฌ๋ฅผ ๋œํ•ด๋„ ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.
 ์šฐ์„  ๋‚ด๊ฐ€ ํ‘ผ ๋ฐฉ์‹์„ ๋‹จ๊ณ„๋ณ„๋กœ ํ’€์ดํ•ด๋ณด๋ฉด
 
 1) [[value, distance:=abs(value-n)] for value in numlist]
 
 numlist์—์„œ value๋ฅผ ํ•˜๋‚˜์”ฉ ๊ฐ€์ง€๊ณ  ์™€์„œ [value, distance]๋กœ ํ‘œํ˜„ํ•œ๋‹ค.
 n์ด 3, value๊ฐ€ 3์ด๋ผ๋ฉด [0, 0 (3-3)]์ด ๋œ๋‹ค.
 
 2) sorted( '1)์—์„œ ๋‚˜์˜จ ๋ฆฌ์ŠคํŠธ', key = lambda x: (x[1],-x[0]))
 
 ์ด๊ฑด sortํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๋ณดํ†ต key = lambda x : ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
 (x[1], -x[0])์˜ ๋œป์€ ๋จผ์ € x[1]์„ ๊ธฐ์ค€์œผ๋กœ ์†ŒํŠธํ•œ๋‹ค.
 ๋งŒ์•ฝ x[1]์ด ๊ฐ™์€ ๊ฐ’์ด๋ผ๋ฉด ๊ทธ ๋‹ค์Œ -x[0]์„ ๊ธฐ์ค€์œผ๋กœ ์†ŒํŠธํ•œ๋‹ค.
 +์™€ -๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ๊ณผ ๋‚ด๋ฆผ์ฐจ์ˆœ์„ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.
 
 3) return [v[0] for v in rank]
 
 2๋ฒˆ์œผ๋กœ ์†ŒํŠธ๋ฅผ ํ•˜๊ณ  ๋‚˜๋ฉด ๊ฑฐ๋ฆฌ์ˆœ, value๊ฐ’์œผ๋กœ ์†ŒํŠธ๊ฐ€ ๋œ๋‹ค.
 ๊ทธ๋Ÿฌ๋ฉด ์ด์ œ ์ฐจ๋ก€๋Œ€๋กœ value๋ฅผ ๊ฐ€์ง€๊ณ  ๋ฆฌํ„ดํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
 """
728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€