본문 바로가기
코딩테스트/LV. 1

LV. 1 :: 하샤드 수

by KUROMI98 2023. 1. 23.

https://school.programmers.co.kr/learn/courses/30/lessons/12947

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

function solution(x) 
{
    var answer = true;
    var sum = 0;
    var text = x + '';
    var arr = text.split('');
    
    for (i=0; i<arr.length; i++)
    { // arr의 모든 원소에 대하여
        arr[i] = Number(arr[i]);
        // 문자 형태를 가진 arr의 원소들을 숫자 형태로 바꿔준다
    }
    
    sum = arr.reduce((a,b) => (a+b));
    // arr의 모든 원소들을 다 더해 sum에 넣어준다
    
    if (x%sum==0) {answer = true;} // 하샤드 수이면 true
    else if (x%sum!==0) {answer=false;} // 아니면 false
    
    return answer;
}

+)230517

const solution = (x) => {
    let number = x + '';
    let n = number.split('').map(x=> parseInt(x)).reduce((a, b) => a + b, 0);
    
    let answer = false;
    if (x%n==0) answer=true;
     
    return answer;
}

230916 C++

#include <string>
#include <vector>

using namespace std;

bool solution(int x) { 
    string str = to_string(x); 
    int sum = 0;
    for (char c : str) { 
        if (isdigit(c)) { 
            int digit = c - '0';
            sum += digit; 
        }
    } 
    return (x%sum!=0) ?  false : true;
}

댓글