어제는 너무 어려워서 겁을 먹게되어.. 쉬워 보이는 것을 풀었다
긍정회로를 돌리자면.. 이제 이런 문제는 금방 푸는것 같다!
처음에는 어떻게 푸는지도 몰랐는데 이제는 대강 머리가 돌아가는 것 같아 좋다
부정회로를 돌리자면.. 이제 이런문제는 그만풀고 더 어려운걸 풀어야하는데 ㅠㅠㅠ 어렵다 어려워
문제는 이렇다!!
내가 푼 답은
def solution(x):
part_x = []
x_ = str(x)
x_sum = 0
for i in x_:
part_x.append(i)
for i in part_x:
x_sum += int(i)
if x % x_sum == 0:
return True
else: return False
요로코롬 된다~~ 맨날 푸는 방식으로 푼다...
1. 일단.. x가 18 이면 1이랑 8로 찢어 놓을 리스트를 생성하고..
2. int는 찢어지지 못하기에 str(x) 로 문자열로 형변환을 해준다
3. 그리고 자리 수의 합을 담당할 변수 x_sum을 만들어준다
4. 그래서 형변환된 x_ 안에 있는 숫자들을 part_x 에 때려붙이고
5. part_x 라는 리스트에 있는 애들을 또 int로 형변환하여 더해준다.
6. 더해준값을 x_sum에 넣어준다
7. 그래서 x 나누기 x_sum 자리수 더한값을 나눠서 목값이 0 이 나오면 True 아니면 False를 출력 하는 걸로~~~~
다른 좋은 코드는 다음과 같다
def Harshad(n):
# n은 하샤드 수 인가요?
return n % sum([int(c) for c in str(n)]) == 0
for 문 앞에 c 변수를 붙일 수 있다는 거를 매번 까먹는다.. 원래 자주 쓰는 방식이었는데..
또한 변수를 지정할 필요없이 []로 리스트 해주고 리스트 안에있는 것들을 sum해버리는... 멋진 코드이다!!
내일은 좀 머리좀 굴리는 코드를 풀어보겠다 다짐해본다!!!!
'코딩 공부 > 프로그래머스' 카테고리의 다른 글
프로그래머스 카카오 개발자 겨울 인턴십(2019) _ 크레인 인형 뽑기 (0) | 2021.01.31 |
---|---|
프로그래머스 _ 나누어 떨어지는 숫자배열 (1) | 2021.01.30 |
프로그래머스 체육복 (1) | 2021.01.26 |
코딩연습 프로그래머스 _ x 만큼 간격이 있는 n개의 숫자 (1) | 2021.01.20 |
코딩연습 프로그래머스_ 두 정수 사이의 합 (1) | 2021.01.18 |