📝 문제
> 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. ( x는 1 이상, 10000 이하인 정수 )
https://programmers.co.kr/learn/courses/30/lessons/12947
🎨 풀이
💡 첫번째 시도 = 성공
- 이번 문제는 x가 하샤드 수가 맞는지 검사하는 문제다. 하샤드 수란 각 자릿수를 합한 결과로 x를 나눴을 때 나누어 떨어지는 수다.
def solution(x):
answer = True
x_list = list(map(int, str(x)))
if x % sum(x_list) == 0:
return answer
else :
answer = False
return answer
> 먼저 각 자릿수를 x_list에 저장을 했다. [1,8] 이런식으로 들어오게끔!
그 후 x 를 x_list의 총합으로 나눴을 때 나누어 떨어지면 True인 answer을 그대로 리턴하고, 아니면 answer을 False로 바꿔서 리턴한다.
⭐ 느낀점
> 다른 부분은 문제 그대로 잘 옮겼는데, list(map(int, str(x))) 이 부분은 문법적으로 좀 헷갈려서 몇 번 헤맸다. map에 대해 제대로 인지하지 못하고 있구나를 좀 깨달았다. 약간 외워서 쓴 것 같기도 하고.. ㅎㅎ;; 그래서 이번에 다시 제대로 알아봤다. map이라는 내장함수의 첫번째 인자는 함수고 두번째 인자는 반복하려는 자료형이다. 그래서 저 코드는 x를 문자열로 변경 후 각 부분을 정수 처리 후 list에 넣는다는 뜻이다. 맨날맨날 헷갈려했는데 다음에 비슷한 코드를 작성할 일이 생긴다면 제대로 기억해내고 싶다!!
'알고리즘 공부 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 / Level 1] x만큼 간격이 있는 n개의 숫자 (파이썬) (0) | 2022.03.27 |
---|---|
[프로그래머스 / Level 1] 행렬의 덧셈 (파이썬) (0) | 2022.03.26 |
[프로그래머스 / Level 1] 핸드폰 번호 가리기 (파이썬) (0) | 2022.03.25 |
[프로그래머스 / Level 1] 평균 구하기 (파이썬) (0) | 2022.03.23 |
[프로그래머스 / Level 1] 콜라츠 추측 (파이썬) (0) | 2022.03.22 |