프로그래머스 _ 하샤드 수
programmers.co.kr/learn/courses/30/lessons/12947?language=python3
제일 처음 든 생각 → 각 자릿수를 쪼개야겠다! → split 메서드를 쓰자!
바로 마주한 난관. split은 문자열을 구분자를 기준으로 쪼개주는 녀석이다.
우리가 입력받는 x는 숫자.
따라서 일단 요 녀석을 문자열로 바꾼 후 split을 쓰면 될 것 같다.
신나게 치고 print를 했더니...
출력 값을 보면 문제점이 들어난다.
1) list에 담겨버린다.
2) 구분자를 지정할 수가 없다!
따라서 이 방법은 포기.
두 번째로... 문자열로 변환했다면, for문을 통해 각 요소들을 가져올 수 있지 않을까?
이런 식으로!
이러면 x = 13일 경우, for문을 돌며 i =1, 3 이 들어갈 테다!
와우! 성공적으로 각 자릿수가 분리되었다!
그럼 이제 이 녀석들을 다시 숫자로 변환한 후, 몽땅 더해주면 그만이다!
나는 a라는 빈 list에 담아 sum함수로 한 번에 더해주는 방식을 선택.
이제 각 자릿수의 합이 구해졌다. 남은 일은 간단.
주어진 x에 각 자릿수를 더한 숫자인 plus를 나눠주면 그만이다!
나누어 떨어지면 True, 아니면 False.
2점 획득!
다른 사람의 풀이. 얼핏 보기에는 참말로 희한하다.
(길이가 짧을수록 사람들은 열광한다!)
우선 이를 통해 int_c = int(c)와 같은 번거로운 짓을 하지 않았다!
그냥 for문 앞에 int(c)라고 적어줌으로써 for문을 돈 c들을 몽땅 숫자로 변환!
얘네를 list에 담아 sum을 써줘서 각 자릿수의 합이 구해진다.
대망의 특이한 부분.
주어진 n을 각 자릿수를 더한 숫자로 나눠 나머지가 0인지 판별했다.
근데 이걸 이대로 return에 적었다! 어떻게? 왜??
==0 이니까!!!!!
하찮게 봤던 == 는 사실 논리 연산자!
따라서 일치하면 True를, 다르면 False를 반환한다...! 와우!
'source-code > Algorithm' 카테고리의 다른 글
프로그래머스 _ 내적 (0) | 2021.02.19 |
---|---|
프로그래머스 _ 두 개 뽑아서 더하기 (0) | 2021.02.18 |
프로그래머스 _ 실패율 (0) | 2021.02.17 |
프로그래머스 _ 이상한 문자 만들기 (0) | 2021.02.16 |
프로그래머스 _ 같은 숫자는 싫어 (0) | 2021.02.14 |