Coding test(Python3)/Programmers
[level 1] 하샤드 수
녜잉
2023. 7. 9. 22:42
문제
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
문제 풀이 접근법1
1) n→str→list 형으로 형변환
2) map()함수를 사용하여 list의 각 원소를 int로 형변환
3) sum()를 사용하여서 리스트의 각 원소의 합을 구함
4) x를 리스트의 원소의 합(각 자릿수를 합한 값)으로 나누어서 나누어 떨어지면 True, 아니면 False를 반환
def solution(x):
answer = True
number = list(str(x))
number = list(map(int, number))
result = sum(number)
if x % result != 0:
answer = False
return answer
다른 분들 풀이
def Harshad(n):
return n%sum(int(x) for x in str(n)) == 0
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(Harshad(18))
헐 sum함수로 이렇게도 풀 수 있다니!!
list comprehension 진짜 각 잡고 한번 다시 봐야지
나도 코드 간결하게 만들고 싶다!!!
https://shoark7.github.io/programming/python/about-list-comprehension-python
[Python] list comprehension에 대한 즐거운 이해
리스트를 생성하는 Python만의 독특한 문법인 list comprehension에 대해 살펴보고 다양한 예제를 만들어봅니다. 그리고 set, tuple, dict와 같은 다른 내장 자료구조에도 적용해봅니다.
shoark7.github.io