[Programmers] κ°€μž₯ 큰 수

Updated:

κ°€μž₯ 큰 수

κ°€μž₯ 큰 수 λ₯Ό ν΄λ¦­ν•˜λ©΄ λ°”λ‘œ μ΄λ™ν•œλ‹€.

μ˜ˆμ „μ— permutation 을 μ‚¬μš©ν•΄μ„œ λ„μ „ν–ˆλ˜ λ¬Έμ œμ˜€μ§€λ§Œ μ‹œκ°„μ΄ˆκ³Όκ°€ λ°œμƒ ν•˜κ³  λ„ˆλ¬΄ μ–΄λ €μ›Œ 풀지 λͺ»ν–ˆλ˜ λ¬Έμ œμ˜€λ‹€.

μ§€κΈˆλ„ ν’€λ‹€κ°€ 도움을 λ°›μ•„ ν’€μ—ˆλŠ”λ° μ–΄λ–»κ²Œ 이런 생각을 ν•˜λŠ”μ§€ λŒ€λ‹¨ ν•  뿐.. λ¬Έμ œμ— μ“Έλͺ¨μ—†λŠ” 쑰건은 μ—†λ‹€κ³  μƒκ°ν•œλ‹€.

이 λ¬Έμ œμ—μ„œ μˆ«μžλŠ” 1000 μ΄ν•˜λ‘œ 주어지고 λ¬Έμžμ—΄λ‘œ λ°”κΎΈμ–΄ return ν•˜λΌκ³  ν•˜μ˜€λ‹€. 이 두 가지 쑰건 λ•Œλ¬Έμ— 문제λ₯Ό μ‰½κ²Œ ν’€ 수 μžˆλ‹€.

λ§Œμ•½ [3, 30, 34, 5, 9] κ°€ 주어진닀면 9534330 이 닡이닀. 보면 μ•Œκ² μ§€λ§Œ νŠΉμˆ˜ν•˜κ²Œ 비ꡐλ₯Ό ν•΄μ•Όν•œλ‹€.

숫자λ₯Ό 이어 뢙인닀면 30보닀 3이 λ¨Όμ € 와야 크고 34λŠ” 3 보닀 λ¨Όμ € 와야 ν•œλ‹€.

1000 μ΄ν•˜λ‘œ 주어지기 λ•Œλ¬Έμ— λ¬Έμžμ—΄λ‘œ λ°”κΎΌλ’€ * 3 을 ν•΄μ£Όμ–΄ λΉ„κ΅ν•˜λ©΄ λœλ‹€.

λ§Œμ•½ 100 μ΄ν•˜λ‘œ 주어진닀고 ν•œλ‹€λ©΄ λ¬Έμžμ—΄λ‘œ λ°”κΎΌλ’€ * 2 λ₯Ό ν•΄μ£Όμ–΄ λΉ„κ΅ν•˜λ©΄ λœλ‹€.

μ™œ 주어진 μžλ¦¬μˆ˜μ— λ§žμΆ°μ•Ό ν•˜λŠ”κ°€ ν•˜λ©΄ [9, 991] 이 μ£Όμ–΄μ‘Œμ„κ²½μš° * 2 λ₯Ό ν•œλ‹€λ©΄ [99, 991991] 이 λ˜μ–΄ 991이 μ•žμ— 였게 λœλ‹€.

ν•˜μ§€λ§Œ * 3 을 ν•œλ‹€λ©΄ [999, 991991991] 이 λ˜μ–΄ 9κ°€ μ•žμ— 였게 λœλ‹€.


def solution(nums):
	answer = ''.join(sorted(map(str, nums), key=lambda x: x * 3, reverse=True))
	if answer[0] == '0':
		answer = '0'

	return answer

μ‹€μ „μ—μ„œ λ§Œλ‚¬λ‹€λ©΄ μƒκ°ν•˜μ§€ λͺ»ν•˜κ³  틀렸을 것 같은 λ¬Έμ œμ΄λ‹€..

또 ν…ŒμŠ€νŠΈμΌ€μ΄μŠ€μ—μ„œ μ˜ˆμ™Έκ°€ μžˆμ—ˆλŠ”λ° [0, 0, 0, 0, 0] 이 주어진닀면 00000 κ°€ μ•„λ‹ˆλΌ 0 을 λ°˜ν™˜ν•΄μ•Ό ν•œλ‹€.


Categories:

Updated:

Leave a comment