자바 4673 셀프넘버

·2022년 12월 29일

백준

목록 보기
14/16
post-thumbnail

북북북..
함수 d를 만드는건 문제 없었는데 비교하는 방식에서 또 막혔엇다... 비슷한 문제를 많이 풀었는데 왜 기억하질 못하니.........................

함수는 수 + 자리수, 배열에 이 수들을 쭉 담아놓고 일치하지 않으면 출력한다.

class Main {
  public static void main(String[] args) {
    FunctionD functionD = new FunctionD();
    int[] arrD = new int[10001]; // 10000 언더??

    for (int i = 1; i < 10001; i++) {
      int d = functionD.function_d(i);

      if (d < 10001) {
        arrD[d] = d;
      }
    }
    for (int i = 1; i < 10001; i++) {
      if (arrD[i] == 0)
        System.out.println(i);
    }
  }
}

class FunctionD {
	int function_d(int x) {
    	int tmp = x; // 수 자체도 더해야댐
        int res = 0; // 자리수 더한값
        while (x != 0) {
        	res += x % 10;
            x /= 10;
        }
        retur res + tmp;
    }
}

1부터 출력돼야해서 10001로 두고, 출력 idx를 1부터 시작함

profile
어?머지?

2개의 댓글

comment-user-thumbnail
2022년 12월 29일

북북북.. 벅벅벅.. 이마빡빡빡...

1개의 답글