-
[알고리즘 문제] 프로그래머스 하샤드 수IT/알고리즘 2019. 4. 21. 12:42
간단히 설명하자면
10의 각 자리수는 1과 0이므로 1+0은 1 10을 1로 나누면 나누어 떨어지니 하샤드의 수가 맞다.
11의 각 자리수는 1과 1이므로 1+1은 2 11을 2로 나누면 나누어 떨어지니 하샤드의 수가 아니다.
이런 식을 이용하여 하샤드의 수인지 아닌지 판별하는 코드를 작성하는 문제이다.
소스코드↓↓↓
123456789101112131415161718192021222324252627282930313233343536373839public class Hazard {public static void main(String[] args) {// TODO Auto-generated method stubScanner scan = new Scanner(System.in);int x = scan.nextInt();System.out.println(hazardNum(x));}public static boolean hazardNum(int x){//반환값 선언boolean answer = false;int temp = x; //자릿수 합을 계산할때 사용하는 임시 변수int sum = 0; //자릿수의 합while(temp/10 != 0){sum += temp%10; //x를 10으로 나누어 나머지들은 자릿수이며 sum에 더해줌temp = temp/10; //다음 자릿수를 위해 나누기}sum += temp; //제일 마지막에 남는 몫이 마지막 자릿수기때문에 sum에 더해줌//입력값을 자릿수의 합으로 나누었을때 떨어지면if(x%sum == 0){answer = true; //하샤드 수이므로 true}//System.out.println(sum);return answer;}}cs 실행결과↓↓↓
참쉽죵
이제 슬슬 알고리즘 깊이 있는 것들 좀 하나 둘 풀어봐야겠다.
'IT > 알고리즘' 카테고리의 다른 글
[알고리즘 문제] 프로그래머스 이상한 문자 만들기 (0) 2019.04.28 [알고리즘 문제] 정올 1583 : 개구리 탈출 (2) 2019.04.24 [알고리즘 문제] 숫자야구 구현 (4) 2019.04.18 [알고리즘 문제] 백준 알고리즘 1673번 : 치킨쿠폰 (1) 2019.04.03 [알고리즘 문제] 큐(Queue) - 리스트 활용 (0) 2019.03.28