필요/코딩테스트(프로그래머스)
[프로그래머스/C++] ㅡ LV1 - 정수 제곱근 판별
ㅊㅇㅅ
2021. 4. 4. 13:46
문제
programmers.co.kr/learn/courses/30/lessons/12947
코딩테스트 연습 - 하샤드 수
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하
programmers.co.kr
풀이
#include <string>
#include <vector>
using namespace std;
bool solution(int x) {
bool answer = true;
int middle = x;
int digit = 0;
while (middle > 0) { // 자릿수 계산
digit += middle % 10;
middle /= 10;
}
if (x % digit != 0) {
answer = false;
}
return answer;
}
풀이
정수의 각 자릿수에 접근해야한다.
두가지 방법이 있다.
첫번째는 정수에 /와 % 연산을 사용하는 것이다.
두번째 방법은 정수를 문자열로 변환하여 자릿수에 접근하는 방법이다.
이렇게 정수로 입출력이 주어지는 경우 첫번째 방법이 더 효율적일 것이다.