[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฐ€์žฅ ํฐ ์ˆ˜/ ํŒŒ์ด์ฌ/ Python/ ์ •๋ ฌ/ sort
Algorithm/Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฐ€์žฅ ํฐ ์ˆ˜/ ํŒŒ์ด์ฌ/ Python/ ์ •๋ ฌ/ sort

728x90
๋ฐ˜์‘ํ˜•

 

๐Ÿ’กsolutions )

 

โœ… ์‚ฌ์šฉํ•œ ์ฃผ์š” ํ•จ์ˆ˜๋Š” lambda, map, sort , join์ด๋‹ค.

โœ… map ํ•จ์ˆ˜๋Š” ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ๋ฅผ ์ง€์ •๋œ ํ•จ์ˆ˜๋กœ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค. ์ด ๋ฌธ์ œ์—์„œ๋Š” ์ž…๋ ฅ ๋ฐ›์€ ์ˆซ์ž ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ ์š”์†Œ๋ณ„๋กœ str ๋ณ€ํ™˜ํ•ด์ฃผ์—ˆ๋‹ค. sort์—์„œ ๊ฐ ์ž๋ฆฟ์ˆ˜ ๋ณ„๋กœ ๊ฐ’์„ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ–ˆ๋‹ค.

โœ… sort ํ•จ์ˆ˜๋กœ ํŠน์ • key๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ. ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ์ˆซ์ž๊ฐ€ 1000 ์ดํ•˜์ด๊ธฐ ๋•Œ๋ฌธ์— key๊ฐ’์œผ๋กœ ๋žŒ๋‹คํ•จ์ˆ˜๋ฅผ ์จ์คฌ๋‹ค. x: x*3๋Š” ๋ฌธ์ž์—ด์— 3์„ ๊ณฑํ•ด์ฃผ๋ฉด ๋ฌธ์ž์—ด์„ 3๊ฐœ์”ฉ ๋ฐ˜๋ณตํ•ด์„œ ๋‚˜์—ดํ•œ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋ƒ„. ๊ฐ’์„ ๋น„๊ตํ•œ ํ›„ ์ •๋ ฌํ•œ๋‹ค. e.g.) ๊ฐ’์ด 5์˜€์œผ๋ฉด 555๋กœ ๊ฐ’์„ ๋น„๊ตํ•ด์„œ ์ •๋ ฌ

โœ… join ํ•จ์ˆ˜๋Š” ๋ฆฌ์ŠคํŠธ์— ํŠน์ • ๊ตฌ๋ถ„์ž๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•จ. ์—ฌ๊ธฐ์„œ๋Š” ๊ณต๋ฐฑ ์—†์ด ๋ฌธ์ž์—ด๋กœ ํ•ฉ์ณค๋‹ค.

โœ… ์ฒ˜์Œ์—๋Š” ํ…Œ์ŠคํŠธ์ผ€์ด์Šค 11๋ฒˆ์„ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ–ˆ๋Š”๋ฐ ๊ทธ ์ด์œ ๋Š” ๋ชจ๋“  ์š”์†Œ๊ฐ€ 0์ธ ๊ฒฝ์šฐ๋ฅผ ๊ณ ๋ คํ•˜์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ˆ˜์ • ์ „ ์ฝ”๋“œ์—์„œ๋Š” ๋งˆ์ง€๋ง‰ ๋ฐ˜ํ™˜์—์„œ return ''.join(numbers)๋ฅผ ํ–ˆ๋Š”๋ฐ, ์ด๋ ‡๊ฒŒ ๋˜๋ฉด numbers = [ 0,0,0,0 ]์ธ ๊ฒฝ์šฐ 0์„ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•˜๋Š”๋ฐ 0000์„ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋˜์–ด ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค. ๋”ฐ๋ผ์„œ int ->str ์ˆœ์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋ฉด 0์œผ๋กœ ์˜ณ๊ฒŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

 

๐ŸŽซcode )

def solution(numbers):
    numbers = list(map(str, numbers))
    numbers.sort(key=lambda x: x * 3, reverse=True)
    return str(int(''.join(numbers)))

 

๐Ÿ“Œ description )

๋ฌธ์ œ์ถœ์ฒ˜ : https://programmers.co.kr/learn/courses/30/lessons/42746?language=python3

 

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

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
๋ฐ˜์‘ํ˜•