๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Algorithm/Programmers

[Programmers] ๊ฐ€์žฅ ํฐ ์ˆ˜

 

๋ฌธ์ œ

 

0 ๋˜๋Š” ์–‘์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ •์ˆ˜๋ฅผ ์ด์–ด ๋ถ™์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ์•Œ์•„๋‚ด ์ฃผ์„ธ์š”.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ฃผ์–ด์ง„ ์ •์ˆ˜๊ฐ€ [6, 10, 2]๋ผ๋ฉด [6102, 6210, 1062, 1026, 2610, 2106]๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , ์ด์ค‘ ๊ฐ€์žฅ ํฐ ์ˆ˜๋Š” 6210์ž…๋‹ˆ๋‹ค.

0 ๋˜๋Š” ์–‘์˜ ์ •์ˆ˜๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด numbers๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ˆœ์„œ๋ฅผ ์žฌ๋ฐฐ์น˜ํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ์–ด return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

 

์ œํ•œ ์‚ฌํ•ญ 
  • numbers์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 100,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • numbers์˜ ์›์†Œ๋Š” 0 ์ด์ƒ 1,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ์ •๋‹ต์ด ๋„ˆ๋ฌด ํด ์ˆ˜ ์žˆ์œผ๋‹ˆ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ์–ด return ํ•ฉ๋‹ˆ๋‹ค.
์ž…์ถœ๋ ฅ ์˜ˆ
[6, 10, 2] "6210"
[3, 30, 34, 5, 9] "9534330"

 

ํ•ด์„ค ์ฝ”๋“œ 
def solution(numbers):
    # str ํ˜•ํƒœ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค
    num = list(map(str,numbers))
    # num์˜ ์ตœ๋Œ€ 1000์ด๊ธฐ ๋•Œ๋ฌธ์— ์ธ์ˆ˜๋ฅผ ๋งž์ถฐ์ฃผ๊ธฐ ์œ„ํ•ด 3์„ ๊ณฑํ•œ๋‹ค
    num.sort(key = lambda x: x * 3, reverse = True)
    # '000'์ด ๋‹ต์ธ ๊ฒฝ์šฐ '0'์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๊ธฐ ์œ„ํ•ด ์ •์ˆ˜๋กœ ๋ฐ”๊พผ ๋’ค ๋‹ค์‹œ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
    return str(int(''.join(num)))
๋ถ„์„ > ์ด ์ฝ”๋“œ์—์„œ์˜ ํ‚คํฌ์ธํŠธ๋Š” ์›์†Œ x๋ฅผ ์›์†Œ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ์ธ 1000์— ๋งž์ถ”๊ธฐ ์œ„ํ•ด lambda ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด 3์„ ๊ณฑํ•ด์ค€ ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 3 ๊ณผ 30 ์ด ์žˆ์„ ๋•Œ ์‹ค์ œ๋กœ๋Š” 30์ด 3๋ณด๋‹ค ํฌ์ง€๋งŒ ์ด ๋ฌธ์ œ์—์„œ๋Š” 3 ์ด 30 ๋ณด๋‹ค ์ปค์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— '333' ๊ณผ '303030' ์œผ๋กœ ๋ฐ”๊พธ์–ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ต์ด '000' ์ธ ๊ฒฝ์šฐ๋„ ์žˆ์œผ๋ฏ€๋กœ ์ด๋Š” 0์œผ๋กœ ๋ฐ”๊ฟ” ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ์ •์ˆ˜ํ˜•์œผ๋กœ ํ•œ ๋ฒˆ ๋ฐ”๊ฟ”์ค€ ํ›„์— ๋‹ค์‹œ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜์‹œํ‚ค๋ฉด ๋œ๋‹ค. 

 

 

 

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ฐ€์žฅ ํฐ ์ˆ˜

0 ๋˜๋Š” ์–‘์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ •์ˆ˜๋ฅผ ์ด์–ด ๋ถ™์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ์•Œ์•„๋‚ด ์ฃผ์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ฃผ์–ด์ง„ ์ •์ˆ˜๊ฐ€ [6, 10, 2]๋ผ๋ฉด [6102, 6210, 1062, 1026, 2610, 2106]๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , ์ด์ค‘ ๊ฐ€์žฅ ํฐ

programmers.co.kr