문제) 정수 내림차순으로 배치하기
코딩테스트 연습 - 정수 내림차순으로 배치하기
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이
programmers.co.kr
- 내 풀이
- 첫 풀이
- max 함수로 큰 값부터 불러온 후 큰 값 삭제
- 문자열 삭제/ 치환 함수: .replace("삭제하려는 문자열","치환할 문자열",치환 횟수)
→ 반환 되는 값 다른 변수에 넣어야 함
def solution(n):
n=str(n)
answer=''
for i in range(len(n)):
m=max(n)
answer+=m
#문자열 삭제/치환 함수: .replace("삭제하려는 문자열","치환할 문자열",치환 횟수)
n=n.replace(m,"",1)
return int(answer)
- 두 번째 풀이
- 리스트에 담은 후 sort() 함수 수행
def solution(n):
ls=list(str(n))
ls.sort(reverse=True)
answer=''
for i in range(len(ls)):
answer+=str(ls[i])
return int(answer)
- 다른 사람 풀이
- "".join(ls) 로 리스트 값 문자열로 바로 합치기 가능
def solution(n):
ls=list(str(n))
ls.sort(reverse=True)
answer="".join(ls)
return int(answer)
- 결과

- 첫 번째 풀이로 런타임 에러나서 계속 수정하느라 한시간 넘게 날렸는데
문제가 좀 바뀌면서 문제오류가 생긴 건지 이전에 통과됐던 풀이들로도 런타임 에러 나는 것 확인^^....
n값을 int변환 후 다시 str변환해야 전부 통과가 가능하다
ls=list(str(n)) → ls=list(str(int(n)))
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] [Level 1] 자릿수 더하기 (0) | 2022.02.21 |
|---|---|
| [프로그래머스] [Level 1] 자연수 뒤집어 배열로 만들기 (0) | 2022.02.19 |
| [프로그래머스] [Level 1] 정수 제곱근 판별 (0) | 2022.02.16 |
| [프로그래머스] [Level 1] 제일 작은 수 제거하기 (0) | 2022.02.16 |
| [프로그래머스] [Level 1] 짝수와 홀수 (0) | 2022.02.16 |