๋ฆฌ์คํธ์ ์๋ ์ซ์๋ค์ ๋์ดํด ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ง๋๋ ์ดํด๋ ์ฌ์ด ๋ฌธ์ . ์ซ์ ๋์ด์ ๋์๊ด๊ณ๋ฅผ ์ ํ์ฉํ๋ฉด ํด๊ฒฐํ ์ ์๋ค.
์์ด๋์ด
์ผ๋จ ์๋ฅผ ์ต๋ํ ํฌ๊ฒ ๋ง๋๋ ์๋ฆฌ๋ฅผ ์์์ผ ํ๋ค.
3, 32, 34๋ฅผ ๋น๊ตํด ๋ณด๋ฉด 34 > 3(33) > 32 ์์๋๋ก ๋์ดํด์ผ ํ๋ค.
๋ 32์ 332๋ฅผ ๋น๊ตํ๋ฉด 332๊ฐ 32๋ณด๋ค ์์ ์์ผ ๋๋ค.
34์ 343 ๋ฅผ ๋น๊ตํด ๋ณด๋ฉด 34๊ฐ 343๋ณด๋ค ์์ ์์ผ ๋๋ค. (34343 > 34334)
์ด๊ฑธ ํ์ด์ ์ค๋ช ํ๋ฉด 34์ 343์
34 -> 34343434...
343 -> 343343343...
์ด๋ฐ ์์ผ๋ก ๋์ดํ ์ ์๋ค.
์ด ๋ฌธ์ ์ ํค ํฌ์ธํธ๋ ์์์ ํฌ๊ธฐ ์ ํ์ด๋ค. ๋ฌธ์ ์์ numbers์ ์์์ ํฌ๊ธฐ๋ 0 ~ 1000์ด๋ค.
๊ทธ๋๊น
34 -> 34343434...
343 -> 343343343...
๋ฐ๋ณตํ ์ซ์์ ์ 4์๋ฆฌ๋ง ๋น๊ตํ๋ฉด ๋๋ค.
์ ์ฒด ์ฝ๋
def solution(numbers):
neo_numbers = numbers
neo_numbers.sort(key = lambda x : (str(x) * 4)[:4], reverse = True)
answer = "".join(map(str, neo_numbers))
if int(answer) == 0:
answer = '0'
return answer
์ฝ๋ ์ค๋ช
neo_numbers.sort(key = lambda x : (str(x) * 4)[:4], reverse = True)
ํ์ด์ฌ์ ์ฌ๊ธฐ์ฑ์ ์์๋ณผ ์ ์๋ค.
sort๋ผ๋ ํจ์๋ 'key ='๋ฅผ ์ด์ฉํด์ ์ ๋ ฌ ๊ธฐ์ค์ ์ ํ ์ ์๋ค.
์ฌ๊ธฐ์ lambda๋ฅผ ์ฌ์ฉํ๋ฉด ์ ๋ ฌ ๊ธฐ์ค์ ์ปค์คํ ํ ์ ์๋ค.
์ ๋ ฌ๊ธฐ์ค์ ์ซ์๋ฅผ 4๋ฒ ์ ๋ ๋ฐ๋ณต์ํค๊ณ ์ฌ๋ผ์ด์ฑ์ผ๋ก 4์๋ฆฌ๊น์ง ์๋ฅธ๋ค. ์ด ๊ฐ๋ค์ ๋น๊ตํด์ ์๋ ์๋ ๊ฐ๋ค์ ์ ๋ ฌํด ์ค๋ค.
๊ทธ๋ฆฌ๊ณ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํด์ผ ํ๋๊น, reverse = True๋ฅผ ์ถ๊ฐํด ์ค๋ค.
answer = "".join(map(str, neo_numbers))
if int(answer) == 0:
answer = '0'
์ ๋ต ์ถ๋ ฅ์ joinํจ์๋ฅผ ์ด์ฉํด ๊ฐ๋จํ๊ฒ ์ถ๋ ฅํ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ ๋ต์ด 00 ๊ฐ์ ๊ฒฝ์ฐ, 000 -> 0์ผ๋ก ๋ฐ๊ฟ์ผ ํ๋๊น if๋ฌธ์ ์ถ๊ฐํด ์ค๋ค.