โ๐ป ํด๋น ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ์์์ผ๋ ๊ฐ๋
์ซ์ ๋ฌธ์์ด ๋์ ๋น๊ต
์ซ์ ๋ฌธ์์ด์ ๋์๊ด๊ณ๋ ๋ฌธ์์ด์ ์ฒซ ๊ธ์๋ถํฐ ๋น๊ตํ์ฌ ๊ฒฐ์ ๋๋ค. ์ซ์ ๋ฌธ์์ด์ ๋น๊ตํ ๋๋ ๋ค์๊ณผ ๊ฐ์ ๊ท์น์ด ์ ์ฉ๋๋ค.
- ์ฒซ ๋ฒ์งธ ๊ธ์๋ถํฐ ๋น๊ตํ๋ค.
- ๋ ๋ฌธ์์ด์ ์ฒซ ๋ฒ์งธ ๊ธ์๊ฐ ๋ค๋ฅผ ๊ฒฝ์ฐ, ํด๋น ๊ธ์์ ์์คํค์ฝ๋ ๊ฐ์ ๋ฐ๋ผ ๋น๊ตํ๋ค.
- ์์คํค์ฝ๋ ๊ฐ์ด ๋ฎ์์๋ก ์์ ๊ฐ์ผ๋ก ๊ฐ์ฃผ๋๋ค.
- ์๋ฅผ ๋ค์ด "652"๋ "3434" ๋ณด๋ค ํฌ๋ค.
- ๋ง์ผ ๋ ๋ฌธ์์ด์ ์ฒซ๋ฒ์งธ ๊ธ์๊ฐ ๋์ผํ ๊ฒฝ์ฐ, ๋๋ฒ์งธ ๊ธ์๋ฅผ ๋น๊ตํ๊ณ ๋์ผํ ๊ธ์์ผ ๊ฒฝ์ฐ์๋ ๊ทธ ๋ค์ ๋ฌธ์๋ฅผ ๋น๊ตํ๋ค.
- ์ด๋ ๊ฒ ๋ฌธ์์ด์ ๋ชจ๋ ๊ธ์๋ฅผ ๋น๊ตํ์ฌ ๋ ๋ฌธ์์ด ์ค ํ๋๊ฐ ๋จผ์ ๋๋๋ฉด, ๊ธธ์ด๊ฐ ์งง์ ๋ฌธ์์ด์ด ์์ ๊ฐ์ผ๋ก ๊ฐ์ฃผ๋๋ค.
- "123"์ "1234"๋ณด๋ค ์๋ค.
https://school.programmers.co.kr/learn/courses/30/lessons/42746
๐๋ฌธ์
์๋ฅผ ๋ค์ด, ์ฃผ์ด์ง ์ ์๊ฐ [6, 10, 2]๋ผ๋ฉด [6102, 6210, 1062, 1026, 2610, 2106]๋ฅผ ๋ง๋ค ์ ์๊ณ , ์ด์ค ๊ฐ์ฅ ํฐ ์๋ 6210์ ๋๋ค. 0 ๋๋ ์์ ์ ์๊ฐ ๋ด๊ธด ๋ฐฐ์ด numbers๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์์๋ฅผ ์ฌ๋ฐฐ์นํ์ฌ ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ฌธ์์ด๋ก ๋ฐ๊พธ์ด return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- numbers์ ๊ธธ์ด๋ 1 ์ด์ 100,000 ์ดํ์ ๋๋ค.
- numbers์ ์์๋ 0 ์ด์ 1,000 ์ดํ์ ๋๋ค.
- ์ ๋ต์ด ๋๋ฌด ํด ์ ์์ผ๋ ๋ฌธ์์ด๋ก ๋ฐ๊พธ์ด return ํฉ๋๋ค.
๐ ํ์ด๋ฐฉ๋ฒ
1. ๊ฐ์ฅ ์ฒ์ ์๋ํ๋ ํ์ด > permutations(์์ด)์ ์ด์ฉํ์ฌ ๊ฐ์ฅ ํฐ ์ ์ถ๋ ฅ
์ฒ์์๋ ์์ด์ ์ด์ฉํ์ฌ ๋์ฌ ์ ์๋ ์ซ์์ ๋ชจ๋ ์กฐํฉ์ ๊ตฌํ ํ,
sort ํจ์๋ฅผ ํตํด ํฐ ์๋๋ก ์ ๋ ฌํ๊ณ , ๊ฐ์ฅ ํฐ ์ซ์๋ฅผ ์ถ๋ ฅํ๋ ์ฝ๋ ์์ฑ
⇒ "์๊ฐ์ด๊ณผ๋ก ์ธํด ์คํจ"
#์์ด ์ด์ฉ => ์๊ฐ์ด๊ณผ..
from itertools import permutations
def solution(numbers):
answer_list = []
res_list = list(permutations(numbers , len(numbers)))
for res in res_list :
answer_list.append(''.join(map(str,res)))
answer_list = sorted(set(answer_list) , reverse = True)
answer = answer_list[0]
return answer
2 . ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ์๋ > ๋์ ํ ์๊ฐ์ด ์๋์ ๋ธ๋ก๊ทธ ์ ๋์ ํ๋ฉฐ ํํธ๋ฅผ ์ฐพ์ผ๋ฌ ๋ ๋ฌ๋ค..๐
- ์ซ์์ ์์๋ฆฌ ์๋ฅผ ๋น๊ตํ์ฌ ๋์ ๊ด๊ณ ํ์ ํ๋ค.
- ๋ง์ผ ์์๋ฆฌ์๊ฐ ๊ฐ์ ๊ฒฝ์ฐ ์๋ฆฟ์๋ฅผ ๋๊ฐ์ด ํด์ ์ฒ๋ฆฌํ๋ค.
- ex) 3 , 30 , 34 ์ด ์์ ๋๋ 333, 3030,3434๋ก ์ฒ๋ฆฌํ์ฌ ๋์๋น๊ต๋ฅผ ํ๋ฉด ๋๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
์ด ๋ฌธ์ ์์ ์ ํ ์กฐ๊ฑด์ 0์ด์ 1000์ดํ๋ผ๊ณ ํ๊ธฐ์, ๋ชจ๋ ์์๊ฐ 3์๋ฆฌ ์ด์์ด ๋ ์ ์๋๋ก ๋ฌธ์์ด์ธ ๊ฐ ์์์ 3์ ๊ณฑํ์ฌ ๋์๋น๊ต๋ฅผ ํด์ค๋ค.
โญ sorted(['3','30']) ์ ['30' , '3'] ์ด ๋์ง๋ง, sorted(['333','303030']) ์ [ '333' , '303030'] ์ด ๋๋ค.
999 ์ 343434 ๋ฅผ ๋น๊ตํ ์ ์๋ ์ด์ ๋ "999" ์ "343" ๊น์ง๋ง ๋น๊ต๋๊ณ ๋๋จธ์ง๋ ๋ฌด์๋๊ธฐ ๋๋ฌธ์ 1000์ด์์ด ๋์ด๊ฐ๋ ๊ฑฐ๋ ์ ๊ฒฝ์ ์์จ๋ ๋๋ค.
ํด๋น ๋ฌธ์ ๋ก ํ์์ ๋, 1๋ฌธ์ ์์ ์คํจ๊ฐ ๋์์ฐพ์๋์ฐ๋ค.. ๊ฒ์ํ์ ํตํด ์ดํด๋ณด๋ ์๋ฅผ ๋ค์ด [0,0,0,0] ์ผ ๊ฒฝ์ฐ์๋ ์ ๋ต์ด '0000'์ผ๋ก ๋์ค๋ฏ๋ก int ํ์ผ๋ก ๋ฐ๊พผ๋ค์ str๋ก ๋ฐ๊ฟ์ฃผ๋ ์ฝ๋ ์ถ๊ฐํ๋ค.
def solution(numbers) :
numbers = list(map(str , numbers))
#๊ฐ ์ซ์์ 3์ ๊ณฑํ ๊ธฐ์ค๋๋ก ์ ๋ ฌ์ํ
numbers.sort(key = lambda x : x*3 , reverse = True)
#๋ฌธ์์ดํ๋๋ก ํฉ์ณ์ฃผ๊ธฐ
answer = ''.join(numbers)
#์๋ฅผ ๋ค์ด [0,0,0,0] ๋ฑ๋ฑ 0์ผ๋ก๋ง ์ด๋ฃจ์ด์ง ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํด int ๋ณํ ํ ๋ค์ str ๋ณํ
answer = str(int(answer))
return answer
์ ๋ง ํ์ด์ฌ์ค๋ฌ์ด ์ฝ๋์ด์ง ์๋..
๐๋๋์
๋น์ฐํ ์ ๋ ฌ ๋ฌธ์ ๋ผ๊ณ ํด์ ์๊ฐ๋ณด๋ค ์ฝ๊ฒ ํ ๊ฒ์ด๋ผ ์์ํ์ง๋ง, Lv1 ์ด์ธ ๋ฌธ์ ๋ค์ ๋ํญ์ ๊ฒช์๋ค.. ใ ใ .. ์๊ฐ๋ณต์ก๋๋ฅผ ๊ณ ๋ คํ์ง ์์ ์ ์ด ๋ง์๋๋ฐ ์ด๋ฒ ๋ฌธ์ ์์ ์์ ํ์์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ํ๋ค๊ฐ ์ค๋ฅ๋ฅผ ๋ง์ดํ๋ค. ๋ค์์ฃผ ํน๊ฐ์์ ์๊ฐ๋ณต์ก๋์ ๋ํ ๊ฐ์๋ฅผ ํ ์์ ์ด๋ ์ฃผ์๊น๊ฒ ๋ค์ด์ผ๊ฒ ๋ค.
โ๐ป Reference
https://dev-astra.tistory.com/455
'STUDY > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ/์ ๋ ฌ] ํ๋ก๊ทธ๋๋จธ์ค - K๋ฒ์งธ ์ (0) | 2024.07.06 |
---|---|
[์๊ณ ๋ฆฌ์ฆ/์ ๋ ฌ] ํ๋ก๊ทธ๋๋จธ์ค - H-Index (0) | 2024.07.06 |
[Algorithm] ์ด๋ถํ์ (0) | 2024.05.14 |
[Algorithm] ๋ฐฑ์ค - ReMorse (0) | 2024.05.06 |
[Algorithm] DFS / BFS (0) | 2024.05.03 |