๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป DEV/ใ„ด problems

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ •๋ ฌ: ๊ฐ€์žฅ ํฐ ์ˆ˜

by vodkassi 2021. 7. 13.
728x90

๋ฌธ์ œ ์„ค๋ช…

 

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"

 

 

๋‚˜์˜ ์†”๋ฃจ์…˜

 

์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์€ ์ˆซ์ž๊ฐ€ ํฌ๋‹ค๊ณ  ํ•ด์„œ ๋ฌด์กฐ๊ฑด ์•ž์— ์˜ฌ ์ˆ˜ ์—†๋‹ค ๋Š” ์ ์ด์—ˆ๋‹ค.  ๊ฐ€๋ น ์ฒซ ๋ฒˆ์งธ ์˜ˆ์‹œ์˜ ๊ฒฝ์šฐ, 10์ด ๊ฐ€์žฅ ํฐ ์ˆ˜์ด์ง€๋งŒ ์—ญ์„ค์ ์œผ๋กœ ์ œ์ผ ์•ž์— ์˜ค๊ฒŒ ๋  ๊ฒฝ์šฐ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์กฐํ•ฉ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๊ฐ€ ๋งŒ๋“ค์–ด์ง„๋‹ค. ์ด์ฒ˜๋Ÿผ ๋‹จ์ˆœ ์ˆ˜์˜ ๋Œ€์†Œ๋น„๊ต๋ฅผ ํ•  ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์˜คํžˆ๋ ค ๋‹ค๋ฅธ ์ž๋ฃŒํ˜•์˜ ํŠน์ง•์„ ์‚ด๋ฆฌ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•œ ๋ฌธ์ œ์˜€๋‹ค.

 

์ˆซ์ž๊ฐ„์˜ ๋น„๊ต์™€ ๋ฌธ์ž์—ด๋กœ ํ‘œํ˜„๋œ ์ˆซ์ž ๊ฐ„์˜ ๋น„๊ต๋Š” ๋‹ค๋ฅด๋‹ค. ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•˜๋ฉด, ์ˆซ์ž๋Š” ์ˆซ์ž ๊ฐ’ ๊ทธ๋Œ€๋กœ ๋น„๊ต๋˜๋‚˜ ๋ฌธ์ž์—ด๋กœ ํ‘œํ˜„๋œ ์ˆซ์ž (๊ฐ€๋ น '5') ๋Š” ascii ๊ฐ’์œผ๋กœ ์น˜ํ™˜๋˜์–ด ์‚ฌ์ „์‹ ์ˆœ์„œ๊ฐ€ ๋น„๊ต๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ˆซ์ž 100์€ ์ˆซ์ž 11๋ณด๋‹ค ํฐ ๊ฐ’์ด๋‚˜, ๋ฌธ์ž์—ด 100 ์€ ๋ฌธ์ž์—ด 11๋ณด๋‹ค ์‚ฌ์ „์ ์œผ๋กœ ์•ž์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€์†Œ๋น„๊ต์‹œ ๋” ์ž‘์€ ๊ฐ’์ด ๋œ๋‹ค. 

 

์ด๋Ÿฌํ•œ ํŠน์ง•์„ ์ด์šฉํ•˜์—ฌ, ๋ฌธ์ž์—ด๋กœ ํ‘œํ˜„๋œ ์ˆ˜๋“ค์ด ๋ชจ๋‘ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์ „์‹์œผ๋กœ ์ •๋ ฌ๋  ์ˆ˜ ์žˆ๋„๋ก ์ž๋ฆฟ์ˆ˜๋ฅผ ๋งž์ถฐ์ฃผ๋ฉด ๋œ๋‹ค. ๋ฌธ์ œ์—์„œ๋Š” ๋ชจ๋“  ์›์†Œ๊ฐ€ 1000์ดํ•˜์ž„์„ ๋ฐํ˜”์œผ๋ฏ€๋กœ, ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„์˜ ์ˆ˜๊ฐ€ ๋  ํ•œ ์ž๋ฆฌ ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ํฐ ๋‹จ์œ„์˜ ์ˆ˜๊ฐ€ ๋  ๋„ค ์ž๋ฆฌ ์ˆ˜๊ฐ€ ๋˜๋„๋ก ๋ชจ๋“  ์›์†Œ์— 4๋ฅผ ๊ณฑํ–ˆ๋‹ค. 

 

์˜ˆ๋ฅผ ๋“ค์–ด '100' ๊ณผ '11' ์„ ๋น„๊ตํ•˜๊ฒŒ ๋˜๋”๋ผ๋„, '100100100100' ๊ณผ '11111111' ๊ฐ„์˜ ๋น„๊ต๋ฅผ ํ†ตํ•ด 11์ด ๋” ์•ž์— ์™€์•ผ ํ•  ๊ฒƒ์ž„์„ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. 

 

def solution(numbers):
    numbers = [str(n) for n in numbers]
    numbers = sorted(numbers, key=lambda x:x*4, reverse=True)
    return str(int(''.join(numbers)))

 

๋ฐฐ์šด ์ 

python ์˜ lambda ํ•จ์ˆ˜๋Š” ๊ต‰์žฅํžˆ ๊ฐ•๋ ฅํ•˜๋‹ค. ํŠนํžˆ ๊ณ ์ฐจํ•จ์ˆ˜ ์•ˆ์˜ ์ฝœ๋ฐฑ์œผ๋กœ ์ „๋‹ฌ๋  ๋•Œ ๊ทธ ์œ„๋ ฅ์ด ๋”ํ•ด์ง€๋‹ˆ ์‚ฌ์šฉ๋ฒ•์„ ์ตํžˆ๊ณ  ์ž์œ ์ž์žฌ๋กœ ํ™œ์šฉํ•ด๋ณด์ž. 

๋Œ“๊ธ€