Algorithm🐰/ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] ν•˜μƒ€λ“œ 수 basic

Jouureee 2021. 2. 24. 00:27

문제 : 

programmers.co.kr/learn/courses/30/lessons/12947

 

μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - ν•˜μƒ€λ“œ 수

μ–‘μ˜ μ •μˆ˜ xκ°€ ν•˜μƒ€λ“œ 수이렀면 x의 자릿수의 ν•©μœΌλ‘œ xκ°€ λ‚˜λˆ„μ–΄μ Έμ•Ό ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 18의 자릿수 합은 1+8=9이고, 18은 9둜 λ‚˜λˆ„μ–΄ λ–¨μ–΄μ§€λ―€λ‘œ 18은 ν•˜μƒ€λ“œ μˆ˜μž…λ‹ˆλ‹€. μžμ—°μˆ˜ xλ₯Ό μž…λ ₯λ°›μ•„ xκ°€ ν•˜

programmers.co.kr

뢄석 :

%와 / λ₯Ό μ΄μš©ν•œ λˆ„μ  κ°’ 계산 λ¬Έμ œλ‹€.

temp λ³€μˆ˜λ₯Ό μ•ˆ μ“°κ³  x원본 값을 λ‚˜λˆ„κ³  λ§ˆμ§€λ§‰μ— λΉ„κ΅ν•˜λŠ” μž‘μ—…μ„ ν–ˆλ”λ‹ˆ 계속 μ—λŸ¬κ°€ 났닀 

λ‹€μŒλΆ€ν„΄ μ‹€μˆ˜ μ•ˆν•΄μ•Όμ§€ 

 

c++ μ½”λ“œ :

#include <string>
#include <vector>


using namespace std;

bool solution(int x) {
    bool answer = true;
    int sum = 0;
    int temp = x;
    while(temp !=0){
       sum += temp % 10; // λˆ„μ ν•΄μ„œ λ‚˜λ¨Έμ§€ κ°’ λ”ν•˜κΈ° 
        temp /= 10; 
    }

    if(x% sum !=0){
        answer = false;
    }else{
        answer = true;
    }

    return answer;
}