
프로그래머스 문제 풀이
# Level1 #Python3
문제 설명
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
제한 조건
# mine
def solution(x):
a = str(x)
sum = 0
for i in range(len(a)):
sum += int(a[i])
if x % sum == 0:
return True
return False
print(solution(13))
# someone else's
def Harshad(n):
return n % sum([int(c) for c in str(n)]) == 0
return n % sum([int(c) for c in str(n)]) == 0
문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
# mine
def solution(number):
new = []
for i in range(len(number)):
if i < len(number)-4:
new.append("*")
elif i >= len(number)-4:
new.append(number[i])
return "".join(new)
print(solution("01033334444"))
# someone else's
def hide_numbers(s):
return "*"*(len(s)-4) + s[-4:]
return "*"*(len(s)-4) + s[-4:]
문제 설명
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
제한 조건
# mine
def solution(x, n):
answer = []
if x > 0:
for i in list(range(x, (x*n)+1, x)):
answer.append(i)
elif x < 0:
for i in list(range(x, (x*n)-1, x)):
answer.append(i)
elif x == 0:
for i in range(n):
answer.append(0)
return answer
print(solution(0, 2))
# someone's else
def solution(x, n):
return [i * x + x for i in range(n)]
return [i * x + x for i in range(n)]