x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.x는 1 이상, 10000 이하인 정수입니다.제출한 코드 :
def solution(x):
if (x % sum(int(digit) for digit in str(x))) == 0:
answer = True
else:
answer = False
return answer
이 문제에서 풀었던 방식 그대로 응용함!
두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
제한사항
a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
제출한 코드 :
def solution(a, b):
return sum(range(min(a, b), max(a, b)+1))
range(a, b + 1)로 쓸 경우에는 a > b일 경우에 코드가 정상 작동하지 않는다.
1-1. 입력된 수가 짝수라면 2로 나눕니다.
1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다.
2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다.
예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환해 주세요.
num은 1 이상 8,000,000 미만인 정수입니다.제출한 코드 :
def solution(num, count = 0):
if num == 1:
return count
elif count >= 500:
return -1
elif (num % 2) == 0:
return solution(num // 2, count + 1)
else:
return solution(num * 3 + 1, count + 1)
제출한 코드 :
def solution(seoul):
index = seoul.index('Kim')
return f"김서방은 {index}에 있다"
제출한 코드 :
def solution(arr, divisor):
answer = [num for num in arr if num % divisor == 0]
return sorted(answer) if answer else [-1]