(C++) 프로그래머스 - 하샤드 수


  • 난이도
    • 프로그래머스 - 1단계

  • 분류
    • 구현

  • 해설
    1. 각 자릿수의 값을 알기 위해서는 숫자를 쪼개야 한다.

  • 문제 접근 과정
    1. 문제에 주어진 조건을 파악한다.
      • x의 자릿수의 합을 구한다.
      • x의 자릿수가 모두 구해질 때 까지 결과를 도출하면 안된다.
    2. 원하는 결과를 파악한다.
      • x의 자릿수 총합을 이용하여 하샤드 수인지 확인한다.
      • x와 자릿수 총합을 나눈다.

  • 풀이

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#include <string>
#include <vector>

using namespace std;

bool solution(int x) {
    bool answer = true;
    int temp = x;
    int placeTotalValue = 0;        // 각 자리수의 총 합
    
    while(temp > 0){
        int placeValue = temp % 10;
        placeTotalValue += placeValue;
        temp /= 10;
    }
    
    return answer = (x % placeTotalValue == 0) ? true : false;
}

댓글

이 블로그의 인기 게시물

(C++) 프로그래머스 - 직사각형 별찍기

(C++) 프로그래머스 - x만큼 간격이 있는 n개의 숫자