๐Ÿ’ก Coding Test/Programmers

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

soozkim 2022. 4. 1. 16:36
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต] ์ •๋ ฌ - 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)))

์–ด๋ ต๋‹ค ์–ด๋ ค์›Œ,,,

728x90