25.1.14.화

kinkin_a·2025년 1월 14일

내일배움캠프 TIL

목록 보기
41/100

알고리즘 코드카타

21.하샤드수

내가 푼 코드

class Solution {
    public boolean solution(int x) {
        boolean answer = true;
        String hashad= Integer.toString(x);
        char[] h= hashad.toCharArray();
        int y=0;
        for(int i=0;i<h.length;i++){
            y+=h[i]-'0';
        }
        if(x%y!=0)
            answer=false;
        return answer;
    }
}

다른 분 코드

class Solution {
    public boolean solution(int x) {
        int sum = String.valueOf(x).chars().map(ch -> ch - '0').sum();
        return x % sum == 0;
    }
}

Integer.toString(int x):x를 int 로 변환.
String.toCharArray: string을 char배열로 변환.
char-'0': int형으로 변환.

22.두 정수 사이의 합

내가 푼 코드

class Solution {
    public long solution(int a, int b) {
        long answer = 0;

        if(a>b)
        for(int i=b;i<=a;i++){
            answer+=b;
            b++;
        }
        else if(b>a){
            for(int i=a;i<=b;i++){
            answer+=a;
            a++;
        }
        }else answer=a;
        return answer;
    }
}

다른 분 코드

class Solution {

    public long solution(int a, int b) {
        return sumAtoB(Math.min(a, b), Math.max(b, a));
    }

    private long sumAtoB(long a, long b) {
        return (b - a + 1) * (a + b) / 2;
    }
}
class Solution {
  public long solution(int a, int b) {
      long answer = 0;
      for (int i = ((a < b) ? a : b); i <= ((a < b) ? b : a); i++) 
          answer += i;

      return answer;
  }
}

메소드 종류를 잘 아니까 for문밖에 모르는 내 코드보다 훨씬 간결하다.

0개의 댓글