Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 파이썬
- 스택
- 패스트캠퍼스
- 직장인인간
- 백준 23289
- 온풍기 안녕!
- 파이썬 기초부터 시작하는 딥러닝 영상인식 바이블 Online 강의 후기
- 패스트캠퍼스후기
- Python
- 백준 3차원 막대기 연결하기
- 코테
- MST
- 백트래킹
- 패캠챌린지
- 백준 9019
- 코딩테스트
- 그리디
- 삼성 코테
- 해쉬
- 백준
- 딥러닝 바이블 후기
- 최단거리
- 문자열
- 직장인자기계발
- 파이썬 기초부터 시작하는 딥러닝 영상인식 바이블 Online 강의
- 직장인인강
- 삼성
- 프로그래머스
- 백준 19950
- 백준 학교 탐방하기
Archives
- Today
- Total
programmingu
[프로그래머스/코딩연습/정렬]가장 큰 수 (파이썬) 친절한 풀이 본문
def solution(numbers): # 옳은 풀이
str_num = list(map(str, numbers))
str_num.sort(key=lambda x: x*3,reverse = True)
return str(int("".join(str_num)))
def solution2(numbers): # 잘못된 풀이
numbers_str = list(map(str,numbers))
check = [False] * len(numbers)
L =[]
ans = ['']*len(numbers)
def dfs(idx):
if idx == len(numbers):
L.append(''.join(ans))
return
else:
for i in range(len(numbers)):
if check[i] == True:
continue
else:
ans[idx] = numbers_str[i]
check[i] = True
dfs(idx+1)
check[i] = False
dfs(0)
L = list(map(int,L))
answer = str(max(L))
return answer
저는 예전에 급하게 코테 연습할 때 풀다가 스트레스 받아서... pass 한 문제였어요 ㅋㅋ
아이패드 사서 공부하는데 쓰면서 어떻게 생각했는지, 순서대로 정리하면서 차근차근 풀어봤어요
그 때는 풀이 봐도 이해도 안되고 마음이 급해서.. ㅜㅜ 힘들었는데 지금은 모르는 것들도 정확히 찾아보면서 풀었어요.
정리한 것들이 저처럼 답답했던 사람들에게 도움이 되길 바라면서 필기본 올려요!
제가 처음에 틀렸던 이유도 적어놨어요. 모든 경우의 수를 다 따져보는 dfs 방식으로 풀었는데, complexity가 커서 그런지 runtime error가 발생해서.. 그냥 넘어갔던 기억이 나네요. 이 문제처럼 list 길이가 100000개..! 처럼 너무 경우의 수가 많으면 dfs 방식을 쓰면 안됩니당.
그 코드도 참고로 올려봤어요.
'coding test practice' 카테고리의 다른 글
[백준/골드2]1738.골목길 (0) | 2021.12.12 |
---|---|
[프로그래머스][코딩연습/level2 수학] 멀쩡한 사각형 파이썬 친절한 설명 (0) | 2021.02.05 |
[프로그래머스/코딩연습/스택/큐]기능개발 (0) | 2021.02.03 |
[프로그래머스][코딩연습/정렬]k번째수 (0) | 2021.01.09 |
[프로그래머스][코딩연습/스택/큐]주식가격 (0) | 2021.01.09 |