본문 바로가기
스파르타 내배캠

스파르타 내배캠 Unity 3기 18일차

by LemongO 2024. 1. 17.

땅콩의 꽃은 노란색을 띠며 나비 모양을 하고 있고, 잎겨드랑이에 핀다. 꽃은 2-3개월에 걸쳐 피는데, 해 뜰 무렵에 꽃봉오리가 벌어지고 수정이 아침 나절에 이루어진다. 며칠이 지나면 자루처럼 생긴 씨방자루가 자란다. 씨방자루는 밑을 향해 자라 깊이가 약 3 cm~5 cm인 흙 속까지 밀고 들어간다. 다 자란 씨방자루는 길이가 18 cm 정도이고, 그 끝에는 발달 중인 열매가 들어 있다. 이 끝이 부풀어 올라 땅콩 꼬투리로 익는다. 꼬투리에는 보통 씨가 2개 들어 있다.

 

 

그렇다! 땅콩은 식물학적으로 콩류 였다...!

암튼 그렇다

 

끝!

 

 

 

 

 

 

 

 

은 아니고 오늘은 팀과제도 끝났으니 알고리즘 문제를 보도록 하자.


 

 

하샤드 수

  • 문제 설명
    양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.

  • 제한 조건
    x는 1 이상, 10000 이하인 정수입니다.

풀이

public class Solution {
    public bool solution(int x) {
        bool answer;
        int devideNum = 0;
        int origin = x;                        
        for (int i = 0; i < x; i = 0)
        {
            devideNum += x % 10;                
            x /= 10;
        }
        answer = origin % devideNum == 0;

        return answer;
    }
}

 

 

자릿수 합을 저장할 int 변수 devideNum 을 선언하고

int 변수 origin으로 주어진 수 x 를 할당한다.

int devideNum = 0;
int origin = x;

 

for문을 도는데 i < x 만큼 돈다.

 

이 때 devideNum 에 x % 10 을 더한다.
x % 10 은 x의 1의 자리수가 구해진다.

 

그리고 x 를 10으로 나눠준다.

 

이렇게하면 x를 자릿수 만큼 루프할 수 있다.

for (int i = 0; i < x; i = 0)
        {
            devideNum += x % 10;                
            x /= 10;
        }

 

마지막으로 bool 변수 answer에 origin % devideNum == 0 을 할당해
origin이 원래 x의 각 자릿수의 합인 devideNum 으로 나눠지면 하샤드 수 이다.

answer = origin % devideNum == 0;

return answer;