프로그래머스: 하샤드 수

최창효·2022년 1월 12일
0
post-thumbnail

문제 설명

  • 특별한 설명이 필요하지 않습니다. 글에서 주어진 설명대로 코드를 구현하면 됩니다.
    • (x의 자릿수의 합으로 x가 나누어떨어지는지를 판별하면 됩니다.)

정답

파이썬

def solution(x):
    val = sum([int(x) for x in str(x)]) #각 자릿수의 합을 val변수에 담습니다
    if x%val == 0: #x가 하샤드 수이면
        return True #true를 리턴합니다
    else:#x가 하샤드 수가 아니면
        return False #false를 리턴합니다

자바

class Solution {
    public boolean solution(int x) {

        String string_X = Integer.toString(x);
        int val = 0;
        
        for (int i =0;i<string_X.length();i++){
            int int_X = Integer.parseInt(string_X.substring(i,i+1));
            val += int_X;
        }
        
        if (x%val == 0){
            boolean answer = true;
            return answer;                
        }else{
            boolean answer = false;
            return answer;            
        }
    }
}

기타

  • 자바 형변환

    • String x = Integer.toString(x_int)
    • int x = Integer.parseInt(x_string)
  • 자바 문자열 slicing

    • string.substring(start,end)
      • .substring(0)은 문자열 전체를 반환한다
      • .substring(0,1)이 문자열의 첫번째 값을 반환한다
  • 다른 사람의 코드 일부

    String[] temp = String.valueOf(x).split("");
    // System.out.println(String.valueOf(x))
    // import java.util.Arrays; 
    // System.out.println(Arrays.toString(String.valueOf(x).split(""))
    int sum = 0;
    for (String s : temp) {
        sum += Integer.parseInt(s);
    }

코드출처 - 해당 문제의 다른 사람의 풀이 보기

  • System.out.println(arr)말고 System.out.println(Arrays.toString(arr))쓰자
  • String.valueOf(x) - x를 문자열로 바꿔줌
  • split("") - 나눈 후 배열 형태로 반환함
  • for (String s : strings) - 파이썬의 for s in strings: 과 같은의미

느낀점

  • 자바파이썬은 다른점이 너무 많다. (지금까지 느끼기에는)
  • 혼자 풀고 다른 사람의 풀이 꼭 보자. (도움이 많이 되었다)
profile
기록하고 정리하는 걸 좋아하는 개발자.

0개의 댓글

관련 채용 정보