-
하샤드 수코딩 테스트/프로그래머스 2021. 8. 17. 18:09
https://programmers.co.kr/learn/courses/30/lessons/12947
코딩테스트 연습 - 하샤드 수
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하
programmers.co.kr
문제 이해
-> x의 자리수의 합으로 x가 나누어진다면 그 수는 하샤드 수
-> 18이라는 수는 1 + 8 = 9이고, 18은 9로 나누어 떨어지므로 하샤드 수
문제 주의
-> 10,000 이하의 정수
문제 풀이
-> 반복문을 통해 들어온 수의 자리수를 파악
-> 예시로 18이 있을 때 10으로 나눠 나머지를 취한다면 8을 얻음
-> 그 후 18을 10으로 나눠 몫인 1을 얻음
-> 이로서 8 + 1 = 9이므로 18을 9로 나눌 수 있으므로 true 반환
-> 만일 나머지가 0이 아니라면 나눌 수 없으므로 false 반환
#include <string> #include <vector> using namespace std; bool solution(int x) { bool answer = true; int hashad = 0; int tempX = x; while (tempX != 0) { hashad += tempX % 10; tempX /= 10; } return x % hashad == 0 ? answer = true : answer = false; }
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
가운데 글자 가져오기 (0) 2021.08.20 나누어 떨어지는 숫자 배열 (0) 2021.08.19 문자열 다루기 기본 (0) 2021.08.18 콜라츠 추측 (0) 2021.08.16 짝지어 제거하기 (0) 2021.07.30