์•Œ๊ณ ๋ฆฌ์ฆ˜

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๊ฐ€์žฅ ํฐ ์ˆ˜ (์ •๋ ฌ)

ghtis1798 2021. 6. 16. 16:13

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œ

 

๐Ÿ”ธ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉํ–ฅ

  1. ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ํ’€์–ด์•ผํ•œ๋‹ค.
  2. ๋ฌธ์ž์—ด ๋น„๊ต๊ฐ€ ์–ด๋–ป๊ธฐ ์ด๋ฃจ์–ด์ง€๋Š”์ง€ ์ˆ™์ง€ํ•  ๊ฒƒ
    • ๋ฌธ์ž์—ด ๊ณฑ์…ˆ์„ ์ˆ˜ํ–‰ํ•œ ๋’ค ๋น„๊ตํ•œ ์ด์œ ๋Š”?
  3. ๋ฌธ์ž์—ด ๋น„๊ต → ์ˆซ์ž ๋ณ€ํ™˜ → ๋ฌธ์ž์—ด ๋ณ€ํ™˜ ํ›„ ๋ฐ˜ํ™˜
    • ์ˆซ์ž๋กœ ๋ฐ”๊พธ์–ด ์ฃผ์ง€ ์•Š์„ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋Š”?

๋ฌธ์ œ ์ ‘๊ทผ

  1. ๋ฆฌ์ŠคํŠธ ์ •๋ ฌ ๊ธฐ๋Šฅ ์ด์šฉํ•˜๊ธฐ

์ฒ˜์Œ ์‹œ๋„๋Š” ๋ฆฌ์ŠคํŠธ ์ •๋ ฌ ๊ธฐ๋Šฅ์„ ์ด์šฉํ–ˆ๋‹ค.

์ •๋ ฌ ์‹œ ๊ธฐ์ค€์ด ๋˜๋Š” key ๊ฐ’์„ ๋ฌธ์ž์—ด์˜ ์ฒซ ๋ฒˆ์งธ ๊ฐ’์œผ๋กœ ์„ค์ •ํ–ˆ๋‹ค.

์ฒซ์งธ์ž๋ฆฌ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ํด ๊ฒฝ์šฐ ์•ž ์ชฝ์— ๋ฐฐ์น˜๋œ๋‹ค.

โŒ ์ฒซ์งธ ์ž๋ฆฌ ์ˆ˜๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ ๋ฐœ์ƒ

  1. 5์™€ 50์€ ์–ด๋–ป๊ฒŒ ๋น„๊ตํ• ๊นŒ? → ์ •๋ ฌ ์‹œ 2๋ฒˆ์งธ ๊ธฐ์ค€์„ ๋ฌธ์ž์—ด ๊ธธ์ด๋กœ ์„ค์ •ํ•œ๋‹ค.
  2. ๋‘˜์งธ ์ž๋ฆฌ ์ˆ˜๊ฐ€ ๊ฐ™์„ ๊ฒฝ์šฐ ๋ฌธ์ž์—ด ๊ธธ์ด๊ฐ€ ์งง์€ ์ชฝ์ด ์•ž์— ๋ฐฐ์น˜๋œ๋‹ค.

โŒ ๊ทธ๋Ÿผ 5, 56, 3์˜ ๊ฒฝ์šฐ๋Š” ์–ด๋–จ๊นŒ? → ์ •๋ ฌ ์‹œ 2๋ฒˆ์งธ ๊ธฐ์ค€

  1. 56, 5, 3์ด ๋˜์–ด์•ผ ํ•œ๋‹ค.

์ฒ˜์Œ์— ๋ฌธ์ž๋ฅผ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•œ ๋’ค ๋น„๊ต๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ ‘๊ทผํ–ˆ๋‹ค.

์ด ๊ฒฝ์šฐ ๋ฌธ์ œ๋Š” ํ’€์ด๊ฐ€ ๋„ˆ๋ฌด ๋ณต์žกํ•ด์กŒ๋‹ค.

  1. ๋ฌธ์ž์—ด ๋น„๊ต ์ˆ˜ํ–‰

๋ณธ๋ž˜ ์ด ๋ฌธ์ œ์˜ ์ทจ์ง€๋Š” ๋ฌธ์ž์—ด ๋น„๊ต ๊ทœ์น™์„ ์ˆ™์ง€ํ•˜๊ณ  ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š๋ƒ์˜€๋‹ค.

  • '5'๋Š” '4'๋ณด๋‹ค ํฌ๋‹ค.
  • '5'๋Š” '444'๋ณด๋‹ค ํฌ๋‹ค.

โญ• ๋ฌธ์ž์—ด ๊ทธ๋Œ€๋กœ๋ฅผ ๋น„๊ตํ•˜์ž.

์ด๋ฅผ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์†Œ์Šค์ฝ”๋“œ

def solution(numbers):
    """ number๋ฅผ ๋ฐ›์•„ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ์ •๋ ฌํ•˜๋Š” ํ•จ์ˆ˜

    Notes:
        1. ํ•ต์‹ฌ์€ ์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•œ ๋’ค, ๋ฌธ์ž์—ด ๋น„๊ต๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
        2. ๋ชจ๋“  ์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์ž์—ด ๊ณฑ์…‰์„ ์ˆ˜ํ–‰ํ•˜์˜€๋‹ค.
        3. ๋งˆ์ง€๋ง‰์— 0000๊ณผ ๊ฐ™์€ ์ค‘๋ณต๊ฐ’์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด int๋กœ ๋ฐ˜ํ™˜ํ•œ ๋’ค ๋‹ค์‹œ string์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜์˜€๋‹ค. 

    Args:์ž…๋ ฅ
        numbers (list): intํ˜• ์ˆซ์ž๋ฅผ ๋‹ด์€ ๋ฆฌ์ŠคํŠธ

    Returns
        ์ •๋ ฌํ•œ ๊ฐ’๋“ค์„ string์œผ๋กœ ์—ฐ๊ฒฐํ•œ ๋ฌธ์ž์—ด ๋ฐ˜ํ™˜

    """
    answer=''
    answer = sorted(list(map(str, numbers)), key=lambda x: x*5, reverse=True)

    return str(int(''.join(answer)))

q = [3, 30, 34, 5, 9]
print(solution(q))

๋‹ค์†Œ ์˜๋ฌธ์ด์—ˆ๋˜ ์ ์€ ์™œ ๋ฌธ์ž์—ด ๊ณฑ์…ˆ์„ ์ˆ˜ํ–‰ํ•œ ๋’ค ๋น„๊ต๋ฅผ ์ง„ํ–‰ํ•˜์˜€์„๊นŒ?

โค ์ฒซ๋ฒˆ์งธ ๋ฌธ์ž ๊ฐ™์€ ๊ฒฝ์šฐ๋ฅผ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด,

'5' > '10000000'์€ True์ด๋‹ค.

→ ์ฒซ๋ฒˆ์งธ ๋ฌธ์ž์ธ 5๊ฐ€ 1๋ณด๋‹ค ํฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

โ“ '5'์™€ '50'์€ ์–ด๋–จ๊นŒ?

'5' > '50'์€ False์ด๋‹ค.

→ ์ฒซ๋ฒˆ์งธ ๋ฌธ์ž๊ฐ€ ๊ฐ™๋‹ค๋ฉด, ์ž๋ฆฌ ์ˆ˜๊ฐ€ ๋” ๋งŽ์€ 50์ด 5๋ณด๋‹ค ํฌ๋‹ค.

ํ•˜์ง€๋งŒ ๋ฌธ์ œ์˜ ์กฐ๊ฑด์€ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.

โ— '505'๊ฐ€ ์•„๋‹ˆ๋ผ '550'์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด๋‹ค.

→ ๋”ฐ๋ผ์„œ ๋ฌธ์ž์—ด์„ ๊ธธ๊ฒŒ ๋‚˜์—ดํ•˜๊ธฐ ์œ„ํ•ด * 5๋ฅผ ํ†ตํ•ด ๋ฌธ์ž์—ด์„ ๋ฐ˜๋ณตํ–ˆ๋‹ค.

  • '3' * 5 = '33333'

๐Ÿ’  '3' * 5 > '30' * 5 ๋Š” True์ด๋‹ค.

  • '33333' > '3030303030'์ด๋ฏ€๋กœ 2๋ฒˆ์งธ ์ž๋ฆฌ์—์„œ ํฌ๊ธฐ ๋น„๊ต๊ฐ€ ๋๋‚œ๋‹ค.

๐Ÿ’  ๋˜ํ•œ, ์ตœ์ข…๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•œ ๋’ค, ๋‹ค์‹œ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

  • ์ด์œ ๋Š” '0000'๊ณผ ๊ฐ™์€ ์˜ˆ์™ธ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • '0000' → 0 → '0'

์ฐธ๊ณ ํ•œ ๋ธ”๋กœ๊ทธ