Noah_Developer
Developer Noah
Noah_Developer
전체 방문자
오늘
어제
  • 전체보기 (87)
    • Programmers (33)
      • Level1 (33)
    • FRONT-END (3)
      • React (2)
      • HTML (0)
      • CSS (0)
      • JavaScrpit (1)
    • BACK-END (23)
      • JAVA (14)
      • C (0)
      • Spring (5)
    • DATABASE (11)
      • MySQL (3)
      • Oracle (0)
    • IDE (2)
      • IntelliJ (2)
      • Eclipse (0)
      • VSCode (0)
    • Android (1)
    • 용어 (2)
      • 금융 (2)
    • Developer Diary (5)
      • Web (1)
    • 자격증 (1)
    • Operating System (3)
      • Linux (2)
    • Info (2)

블로그 메뉴

  • 홈
  • 방명록
  • 포트폴리오
  • 깃허브

공지사항

  • 🙏 방문 감사합니다.

인기 글

태그

  • 알고리즘 풀이
  • 프로그래머스 레벨1
  • 카카오공채
  • 알고리즘 블로그
  • 알고리즘 예제
  • 자바 알고리즘 연습문제
  • 카카오 블라인드 테스트
  • programmers level 1
  • 코딩테스트 문제
  • String StringBuilder 차이
  • 알고리즘 연습문제
  • level1
  • MySQL
  • 코딩테스트
  • 개발일기
  • 크레인 인형뽑기
  • 카카오 블라인드
  • 프로그래머스 코딩연습
  • 코딩테스트 문제 풀이
  • programmers
  • 자바 쉬운 알고리즘
  • 초보자 알고리즘
  • 알고리즘 쉬운문제
  • 프로그래머스
  • 알고리즘 문제
  • 프로그래머스 연습문제
  • 크레인 인형뽑기 풀이
  • 코딩테스트 준비
  • 크레인 인형뽑기 정답
  • 프로그래머스 문제풀이

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
Noah_Developer

Developer Noah

[Programmers Level 1] 하샤드 수 정답 및 문제 풀이
Programmers/Level1

[Programmers Level 1] 하샤드 수 정답 및 문제 풀이

2021. 5. 31. 15:43
728x90

하샤드 수 원문 보기

 

코딩테스트 연습 - 하샤드 수

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하

programmers.co.kr

👀 문제 설명

 

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

 

하샤드 수 [나무위키]

 

🚥 제한사항

 

x는 1 이상, 10000 이하인 정수입니다.

 

 

📌 입출력 예

arr return
10 true
12 true
11 false
13 false

입출력 예 설명

입출력 예 #1
10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다.
입출력 예 #2
12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다.
입출력 예 #3
11의 모든 자릿수의 합은 2입니다. 11은 2로 나누어 떨어지지 않으므로 11는 하샤드 수가 아닙니다.
입출력 예 #4
13의 모든 자릿수의 합은 4입니다. 13은 4로 나누어 떨어지지 않으므로 13은 하샤드 수가 아닙니다.

 

🤨 고민

문제의 이해
하샤드 수란 뭐지?
자리수의 합계를 어떻게 얻을까?

 

💻 코딩

1차 제출.

class Solution {
    public boolean solution(int x) {
        boolean answer = true;
        
        // int to String
        String temp = String.valueOf(x);
        // 합계 데이터 저장할 sum 변수 선언
        int sum = 0;
        // x의 길이만큼 도는 for
        for (int i = 0; i < temp.length() ; i++) {
            // 자리수에 값을 받으면 ASCII 코드로 나옴 -48처리하여 정수로 변환
            sum += temp.charAt(i)-48;
        }
        // System.out.println(" sum : " + sum);
        
        // x를 sum으로 나누어 0인 경우 하샤드 수(true), 
        // 아닌경우 하샤드 수 아님(false)
        if (x % sum != 0) answer = false;
        
        return answer;
    }
}

 

하샤드 수 테스트 결과.png

 

📝 채점

 

하샤드 수 채점 결과.png

 

⏱ 소요시간 및 후기

소요 시간 약 20분.

정말 헤아릴 수 없는 수가 많은 것 같다.

하샤드 수 란 무엇인지 알게되었고,

charAt으로 각 자리를 파싱하니 아스키 코드로 반환되어 그걸 처리하는 방법을 알게되었다.

728x90
저작자표시 (새창열림)

'Programmers > Level1' 카테고리의 다른 글

[Programmers Level 1] 제일 작은 수 제거하기 정답 및 문제 풀이  (0) 2021.06.04
[Programmers Level 1] 로또의 최고 순위와 최저 순위 정답 및 문제 풀이  (0) 2021.06.01
[Programmers Level 1] 3진법 뒤집기 정답 및 문제 풀이  (0) 2021.05.30
[Programmers Level 1] [1차] 다트게임 정답 및 문제 풀이(카카오 블라인드 코딩 테스트)  (0) 2021.05.26
[Programmers Level 1] 나누어 떨어지는 숫자 배열 정답 및 문제풀이  (0) 2021.05.24
    'Programmers/Level1' 카테고리의 다른 글
    • [Programmers Level 1] 제일 작은 수 제거하기 정답 및 문제 풀이
    • [Programmers Level 1] 로또의 최고 순위와 최저 순위 정답 및 문제 풀이
    • [Programmers Level 1] 3진법 뒤집기 정답 및 문제 풀이
    • [Programmers Level 1] [1차] 다트게임 정답 및 문제 풀이(카카오 블라인드 코딩 테스트)
    Noah_Developer
    Noah_Developer
    개발 기록 목적을 가진 블로그입니다.

    티스토리툴바