[ํ๋ก๊ทธ๋๋จธ์ค] ์ ๋ ฌ - ๊ฐ์ฅ ํฐ ์
๋ฌธ์
๋ฌธ์ ์ค๋ช
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โ |
ํ์ด
Python
def solution(numbers):
answer = ''
numbers = list(map(str, numbers)) # numbers ๋ฐฐ์ด ์์ ํ์
์ strํ์ผ๋ก
numbers.sort(key=lambda x:x*3, reverse=True) # numbers๋ 1,000์ดํ์ ์์๋ค๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฏ๋ก ์์๋ค์ 3์๋ฆฌ ์๋ก ๋ง๋ค์ด ์์์๋ถํฐ 3์๋ฆฌ๊น์ง ํฌ๊ธฐ๋ฅผ ๋น๊ตํจ
answer = str(int(''.join(numbers))) # numbers=[0, 0, 0]์ ๊ฒฝ์ฐ ์์ธ์ฒ๋ฆฌ๋ฅผ ์ํด intํ์ผ๋ก ๋ฐ๊พผ ๋ค strํ์ผ๋ก
return answer
๐ก ์์๋ฅผ 3์๋ฆฌ์๋ก ๋ฐ๊ฟ์ฃผ์ด ๋ฌธ์์ด๋ผ๋ฆฌ ํฌ๊ธฐ ๋น๊ต๋ฅผ ํ๋ ๊ฒ์ด ํต์ฌ!
๋ฒ์ธ - ํจ์จ์ฑ์์ ๋น ๊พธ๋จน์ ํ์ด
from itertools import permutations
def solution(numbers):
answer = ''
for per in permutatins(numbers):
target = ''
for num in per:
target += str(num)
answer = max(answer, target)
return answer
๐
- ์์ด์ ์ด์ฉํ์ฌ ๊ฐ๋ฅํ ๋ชจ๋ ์์์ ๋ฌธ์์ด ์กฐํฉ์ ๊ตฌํ ๋ค ํ๋์ฉ ํฌ๊ธฐ๋ฅผ ๋น๊ตํ๋ ๋ฐฉ์
- ๋ชจ๋ ํ ์ผ์์ ์๊ฐ์ด๊ณผโฆ;
- numbers ๋ฐฐ์ด์ ์ต๋ ๊ธธ์ด๊ฐ 100,000์ด๋ฏ๋ก ๋ชจ๋ ์์ด์ ๊ตฌํ๋ ๊ฒ์ด ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฌ๋ ๊ฒ ๊ฐ์!