[프로그래머스] 파이썬 코딩테스트 연습 LV1(정수 내림차순으로 배치하기, 하샤드 수)

728x90

1. 정수 내림차순으로 배치하기

 

문제 설명

 

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

 

제한 조건

 

n은 1이상 8000000000 이하인 자연수입니다.

 

내 풀이

def solution(n):
    x = list(str(n))
    x.sort(reverse = True) 		#list.sort(): 리스트 정렬
    answer = int(''.join(x)) 	# 구분자.join(문자열 리스트): 문자열 리스트 안에 있는 원소들 사이에 구분자를 넣어서 합친 문자열을 반환
    
    return answer

 

다른 사람 풀이

def solution(n):
    return int("".join(sorted(list(str(n)), reverse=True)));

 

2. 하샤드 수

 

문제 설명

 

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.

 

내 풀이

def solution(x):
    sum = 0
    for i in str(x):  
        sum += int(i)
        if x%sum == 0:
            answer = True
        else:
            answer = False
    return answer

 

다른 사람 풀이

def Harshad(n):
    return n%sum(int(x) for x in str(n)) == 0
728x90