https://programmers.co.kr/learn/courses/30/lessons/42746?language=python3
처음에 전체 수의 조합을 찾고, 그중에서 가장 큰 값을 찾는다로 접근했는데 역시나 "시간초과"
# 전체 수 조합 찾고, 그중에서 가장 큰 값을 찾기 (시간초과로 실패)
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import itertools
def solution(numbers):
s_num = [str(i) for i in numbers]
p_num = itertools.permutations(s_num)
p_num = ["".join(i) for i in p_num]
return p_num[len(p_num)-1]
return answer
|
# 아래는 성공한 코드
- 주어진 수의 자리수를 모두 12자리로 통일해주고 값을 비교해서 정렬 후 합쳐준다.
- 자리수를 일치시키고 비교한다는 Idea가 중요했다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
def solution(numbers):
# 1~4자리까지 자리수별로 모으기 / 모두 12자리로 통일 해준다.
numbers = [str(i) for i in numbers] # 모두 str로 변환
com_list = []
for i in numbers :
if len(i) == 4 :
if len(i) == 3 :
if len(i) == 2 :
if len(i) == 1 :
f_list = []
for i in com_list :
return str(int(''.join(f_list)))
|
# 다른사람 코드 (훨씬 간결하다)
1
2
3
4
5
|
def solution(numbers):
numbers = list(map(str, numbers))
# print(numbers)
return str(int(''.join(numbers)))
|
[알고리즘문제 풀이] 프로그래머스 : 서울에서 김서방 찾기, 연습문제 (0) | 2019.04.14 |
---|---|
[알고리즘 풀이] 프로그래머스 : 타겟넘버, Level2(깊이/너비 우선 탐색) (0) | 2019.04.12 |
[알고리즘 풀이] 프로그래머스 : 소수 찾기, Level2(완전탐색) (0) | 2019.04.12 |
[알고리즘 풀이] 프로그래머스 : 체육복, Level2(탐욕법) (0) | 2019.04.12 |
[알고리즘 풀이] 프로그래머스 : K번째수, Level1(정렬) (0) | 2019.04.12 |