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

이선아·2022년 2월 5일
2

놓고 있던 알고리즘 다시 도전 중 배운거 안까먹으려고 올림미다

맨 처음 짰던 코드는 3-4줄 더 길었는데 남자친구가 도와줘서 줄인 버전

잊지말자 숫자 하나씩 모으고 싶으면 while문 안에서 % 10, /= 10 해주기.. 비슷한 문제가 많은데도 항상 까먹는 나..


벡터 안 쓴 하샤드 수.cpp

#include <string>
#include <vector>

using namespace std;

bool solution(int x) {
    int sum = 0;
    int number = x;
    
    while(number > 9) {
        sum += number % 10;
        number /= 10;
    }
    
    sum += number;
    
    return x % sum == 0;
}

number /= 10; 을 해줘야 while문이 돌아가면서 맨 뒤 숫자가 하나씩 잘라진다

📌 원래는 (x % sum) != 0if문으로 받고 맞으면 false 반환, 아니면 true 반환으로 했었는데 다 지우고 return에 논리연산자 x % sum == 0을 해줘서 맞으면 true 아니면 false 반환한다는 거 알게됨

아 while문 끝나고 마지막에 한자리 남은 것도 더해줘야

++

while(num>0) {
	sum += num%10;
	num = num/10;
}

이런식으로 한 번에 쓰는 것도 된다고 합닏

profile
깃허브 놀러오세용 -> Tistory로 블로그 이전합니다.

0개의 댓글