티스토리 뷰

728x90
반응형

 

https://programmers.co.kr/learn/courses/30/lessons/12933

 

코딩테스트 연습 - 정수 내림차순으로 배치하기

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이

programmers.co.kr

 

 


 

 

<나의 풀이>

def solution(n):
    # 정렬을 위해 n을 문자열로 바꾼 후, 문자 하나씩 리스트에 넣어줌
    str_n = [s for s in str(n)]
    
    # 내림차순으로 정렬함
    str_n = sorted(str_n, reverse=True)
    
    # 정답 변수
    answer = ''
    
    # 리스트를 문자열로 바꿔줌
    for i in str_n:
        answer += i
    
    # 정수를 리턴하기 위해 문자열을 정수형으로 형변환
    return int(answer)

 

원본 리스트에 영향을 안주려고 sorted를 사용했는데..

나는 바보다ㅎ

어차피 원본 리스트에 넣을 꺼면 sort를 사용할껄 그랬다😂

리스트 만들어 주는 것도 list()를 사용하면 될 것을,

머릿속으로 '정수를 문자열로 만들어 하나씩 리스트에 넣어줘야겠다' 라고

생각해서 굳이 for문을 돌렸다ㅎ

아무 생각 없이 풀어 아쉬움이 많이 남는 코드😞

앞으로는 제출하기 전 한번 더 생각해봐야겠다!

 

<다른 사람의 풀이>

def solution(n):
    ls = list(str(n))
    ls.sort(reverse = True)
    return int("".join(ls))
728x90
반응형
댓글