[ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต] ์ ๋ ฌ - Lv2. ๊ฐ์ฅ ํฐ ์
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๊ฐ์ฅ ํฐ ์
0 ๋๋ ์์ ์ ์๊ฐ ์ฃผ์ด์ก์ ๋, ์ ์๋ฅผ ์ด์ด ๋ถ์ฌ ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ์์๋ด ์ฃผ์ธ์. ์๋ฅผ ๋ค์ด, ์ฃผ์ด์ง ์ ์๊ฐ [6, 10, 2]๋ผ๋ฉด [6102, 6210, 1062, 1026, 2610, 2106]๋ฅผ ๋ง๋ค ์ ์๊ณ , ์ด์ค ๊ฐ์ฅ ํฐ
programmers.co.kr
๋ฌธ์ ์ค๋ช
0 ๋๋ ์์ ์ ์๊ฐ ์ฃผ์ด์ก์ ๋, ์ ์๋ฅผ ์ด์ด ๋ถ์ฌ ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ์์๋ด ์ฃผ์ธ์.
์๋ฅผ ๋ค์ด, ์ฃผ์ด์ง ์ ์๊ฐ [6, 10, 2]๋ผ๋ฉด [6102, 6210, 1062, 1026, 2610, 2106]๋ฅผ ๋ง๋ค ์ ์๊ณ , ์ด์ค ๊ฐ์ฅ ํฐ ์๋ 6210์ ๋๋ค.
0 ๋๋ ์์ ์ ์๊ฐ ๋ด๊ธด ๋ฐฐ์ด numbers๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์์๋ฅผ ์ฌ๋ฐฐ์นํ์ฌ ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ฌธ์์ด๋ก ๋ฐ๊พธ์ด return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- numbers์ ๊ธธ์ด๋ 1 ์ด์ 100,000 ์ดํ์ ๋๋ค.
- numbers์ ์์๋ 0 ์ด์ 1,000 ์ดํ์ ๋๋ค.
- ์ ๋ต์ด ๋๋ฌด ํด ์ ์์ผ๋ ๋ฌธ์์ด๋ก ๋ฐ๊พธ์ด return ํฉ๋๋ค.
์ ์ถ๋ ฅ ์
numbers | return |
[6, 10, 2] | "6210" |
[3, 30, 34, 5, 9] | "9534330" |
์ ์ถ
ํ๋ค๊ฐ ์ ๋ชจ๋ฅด๊ฒ ์ด์ ๊ฒ์ํด์ ํ์ด๋ฅผ ์ฐพ์๋ดค๋ค. ๋ณด๋ฉด์๋ ์ดํด๊ฐ ์๊ฐ์ ๋๊ธ ์ ๋ ํ๋คใ
ํ์ด ์ค๋ช
1) ๋ฆฌ์คํธ์ numbers๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ์ฌ ๋ด์
2) lambda x: x * 3 ์ ํด์ฃผ๋ ์ด์ ๋ ์ ํ ์ฌํญ์ ์์๊ฐ 1000์ดํ์ ์ซ์์ด๊ธฐ ๋๋ฌธ์ด๋ค. 9์ 991๋ก ์๋ฅผ ๋ค๋ฉด, '9' * 3์ ํ๋ฉด '999'๊ฐ ๋๋๋ฐ '991'๊ณผ ๋น๊ตํ์ ๋ ๋ ํฌ๋ค๋ ํ๋จ์ด ๋์จ๋ค. * 2๋ฅผ ํด์ฃผ๋ฉด '99' < '991' ์ด ๋๋ฏ๋ก * 3์ ํด์ค์ผ ์ํ๋ ์ ๋ ฌ์ด ๋์ฌ ์ ์๋ค.
3) ๋ฆฌํดํ ๋, str(int())๋ '0000'์ ๊ฒฝ์ฐ์๋ '0'์ผ๋ก ๋ฐํํด์ฃผ๊ณ ๋ฌธ์์ด๋ก ๋ณํํด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
ํ์ด ๋๊ธ ์ค "str(int())๊ฐ ํ์์๋ ํ ์คํธ์ผ์ด์ค์๋ ์ ์ฉ์ด๋์ ์๊ฐ๋ณต์ก๋๊ฐ ๋์์ง๋ฏ๋ก, ์ฝ๋ ๋งจ์์ if sum(numbers) == 0: return '0' ๋ง ์์ฑํด์ฃผ์๋ฉด ์๋๊ฐ ๋ ๋นจ๋ผ์ง๋๋ค." ๋ผ๋ ์๊ฒฌ๋ ์๋ค.
def solution(numbers):
numbers = list(map(str, numbers))
numbers.sort(key=lambda x: x * 3, reverse=True)
# print(numbers)
return str(int(''.join(numbers)))
์ด๋ ต๋ค ์ด๋ ค์,,,