https://programmers.co.kr/learn/courses/30/lessons/42746
ํ์ด
# ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ ฌ - ๊ฐ์ฅ ํฐ ์
def solution(num):
num = list(map(str, num))
num.sort(key = lambda x : x*3, reverse = True)
return str(int(''.join(num)))
์ฒ์์ ๋ฌธ์ ๋ฅผ ํ๋ค๊ฐ ์ ์ดํด๊ฐ ์๋ผ์ ํ์ด๋ฅผ ๋ดค๋๋ฐ๋ ์ ๋๋ก ์ดํด ํ์ง ๋ชป ํ ๋ฌธ์ ์๋ค.
๋ฌธ์ ํ์ด
- intํ์ list๋ฅผ map์ ์ฌ์ฉํ์ฌ string์ผ๋ก ์นํํ ๋ค, list๋ก ๋ณํํ๋ค.
- ๋ณํ๋ num์ sort()๋ฅผ ์ฌ์ฉํ์ฌ key ์กฐ๊ฑด์ ๋ง๊ฒ ์ ๋ ฌํ๋ค.
lambda x : x * 3์ num ์ธ์ ๊ฐ๊ฐ์ ๋ฌธ์์ด์ 3๋ฒ ๋ฐ๋ณตํ๋ค๋ ๋ป์ด๋ค.- x * 3์ ํ๋ ์ด์ ?
- num์ ์ธ์๊ฐ์ด 1000 ์ดํ์ด๋ฏ๋ก 3์๋ฆฌ์๋ก ๋ง์ถ ๋ค, ๋น๊ตํ๊ฒ ๋ค๋ ๋ป.
- x * 3์ ํ๋ ์ด์ ?
- ๋ฌธ์์ด ๋น๊ต๋ ASCII ๊ฐ์ผ๋ก ์นํ๋์ด ์ ๋ ฌ๋๋ค. ๋ฐ๋ผ์ 666, 101010, 222์ ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค ๊ฐ์ผ๋ก ๋น๊ตํ๋ค.
- 6 = 86, 1 = 81, 2 = 82 ์ด๋ฏ๋ก 6 > 2 > 1์์ผ๋ก ํฌ๋ค.
- sort()์ ๊ธฐ๋ณธ ์ ๋ ฌ ๊ธฐ์ค์ ์ค๋ฆ์ฐจ์์ด๋ค. reverse = True ์ ์ sort๋ ๊ฒฐ๊ณผ๊ฐ์ 10, 2, 6์ด๋ค.
- ์ด๋ฅผ reverse = True๋ฅผ ํตํด ๋ด๋ฆผ์ฐจ์ ํด์ฃผ๋ฉด 6,2,10์ด ๋๋ค. ์ด๊ฒ์ ‘‘.join(num)์ ํตํด ๋ฌธ์์ด์ ํฉ์ณ์ฃผ๋ฉด ๋๋ค.
- int๋ก ๋ณํํ ๋ค, ๋ str๋ก ๋ณํํด์ฃผ๋ ์ด์ ?
- ๋ชจ๋ ๊ฐ์ด 0์ผ ๋(์ฆ, ‘000’์ ์ฒ๋ฆฌํ๊ธฐ ์ํด) int๋ก ๋ณํํ ๋ค, ๋ค์ str๋ก ๋ณํํ๋ค.