๋ค์ด๊ฐ๊ธฐ ์์
๋ชจ๋ฐ์ผ๋ฆฌ๋ ์ฝ๋ฉ ํ
์คํธ๋ฅผ ์ค๋นํ๋ฉด์ ๋ง๋ ๋๋ฅด์์์ฆ ์๋ ๊ต์ฅํ ํฅ๋ฏธ๋ก์ด ๋ฌธ์ ์๋ค.
์ธ์ ๊ฐ๋ ๊ผญ ๊ธฐ๋กํด์ผ์ง ํ๋๋ฐ ์ฝ๋ฉ ํ
์คํธ๋ฅผ ๋ณธ์ง 2์ฃผ ํ์ ์ด๋ ๊ฒ ๊ธฐ๋กํ๊ฒ ๋์๋ค.
๊ทผ๋ฐ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ด ๋ฌธ์ ๋ฅผ ์ ์ ๋ด๋ฆด ์ ์์์ง.. ์ ๋ชจ๋ฅด๊ฒ ๋ค.๐ต
๋๋ฅด์์์ฆ ์?
Narcissistic number - Wikipedia
From Wikipedia, the free encyclopedia Jump to navigation Jump to search Integer expressible as the sum of the (number of digits)th power of each of its digits In number theory, a narcissistic number[1][2] (also known as a pluperfect digital invariant (PPDI
en.wikipedia.org
๋๋ฅด์์์ฆ ์๋ n์ ๋ชจ๋ ์๋ฆฌ์์ k ์ ๊ณฑ์ ํ๊ณ ๋ํ ๊ฐ์ด n๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ๋๋ฅด์์์ฆ ์๋ผ๊ณ ํ๋ค. ํน์ ์์๋์ทจ ์.
์ฐ๋ฆฌ๋๋ผ์์ ๋๋ฅด์์์ฆ ์ ํน์ ์์๋์ทจ ์๋ก ๊ตฌ๊ธ์ ๊ฒ์ํ๋ฉด ์ฌ๋ฆฌํ์ ๋ํ ๋ถ๋ถ์ด ๋ง์ด ๋์์ ์์ด๋ก ๊ฒ์ ํด์ผ ํ๋ค.
๋ฌธ์
Arori | ๋น์ ์ ์ง์
ํ์๊ฐ์ ์กฐ๊ฑด์ด ๋ง๋์ง ๋ค์ํ๋ฒ ํ์ธํด์ฃผ์์
www.sysout.co.kr
(ํ๋ก์ ํธ๋ก ์งํํ๋ Arori์ ๋ฌธ์ ๋ฅผ ์์ฑํด์ ๊ณต๋ถํ๋ค. ๊ฝค๋ ์ ์ฌ์ฉํ๋ ์ค!)
์ด๋ค ์๋ฆฌ ์ k๊ฐ ์ฃผ์ด์ก์ ๋ ๊ฐ ์๋ฆฟ์์ k ์ ๊ณฑ์ ํฉ์ด ์๋ ์๊ฐ ๋๋ ์๋ฅผ ์์๋์ทจ ์๋ผ๊ณ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด 153์ ์ธ ์๋ฆฌ ์์๋์ทจ ์์ ๋๋ค.
์์ฐ์ k๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ k ์๋ฆฌ ์์๋์ทจ ์๋ค์ ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ๋ด์ return ํ๋๋ก solution ๋ฉ์๋๋ฅผ ์์ฑํ๋ ค ํฉ๋๋ค.๋น์นธ์ ์ฑ์ ์ ์ฒด ์ฝ๋๋ฅผ ์์ฑํด์ฃผ์ธ์.
๋งค๊ฐ๋ณ์ ์ค๋ช
k๊ฐ solution ๋ฉ์๋์ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค.
- k๋ 3 ์ด์ 6 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
return ๊ฐ ์ค๋ช
k ์๋ฆฌ ์์๋์ทจ ์๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๋ค ๋ฐฐ์ด์ ๋ด์ return ํฉ๋๋ค.
์์
k | return |
---|---|
3 | [153, 370, 371, 407] |
์์ ์ค๋ช
- 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153
- 370 = 3^3 + 7^3 + 0^3 = 27 + 343 + 0 = 370
- 371 = 3^3 + 7^3 + 1^1 = 27 + 343 + 1 = 371
- 407 = 4^3 + 0^3 + 7^3 = 64 + 0 + 343 = 407
ํ์ด
์ค๋ช
- ๋จผ์ ์์ฐ์
k
๋n
์ ์๋ฆฟ์์ ์ ๊ณฑ๊ฐ์ธ ๊ฒ๊ณผ ๋์์n
์ ์๋ฆฟ์๊ฐ ๋ช ๊ฐ์ธ์ง ์ ์ ์๋ ์์ด๋ค. power()
๋ฉ์๋๋k
๋งํผ ๋ฐ๋ณตํ์ฌ ๊ฐ ์๋ฆฌ์์ ์์ฐ์๋ฅผ ์ ๊ณฑ๊ฐ์ด ์ผ๋ง์ธ์ง ๊ตฌํด์ฃผ๋ ๋ฉ์๋์ด๋ค.
์ฝ๋
package ๋ชจ๋ฐ์ผ๋ฆฌ๋_์ฝ๋ฉํ
์คํธ_04;
import java.util.*;
public class question_06 {
public int power(int base, int exponent) {
int val = 1;
for (int i = 0; i < exponent; i++) {
val *= base;
}
return val;
}
public int[] solution(int k) {
// k๋ฅผ ํตํด ์ต๋ ๋ฒ์๋ฅผ ๊ตฌํ๋ค.
int range = power(10, k);
int[] answer = new int[range];
int count = 0;
// ๋๋ฅด์์์ฆ ์๋ range ๋ฒ์ ์์ ์กด์ฌํ๋ค.
for (int i = range / 10; i < range; i++) {
int current = i;
int cal = 0;
// i์ ๋ํ ๊ฐ ์๋ฆฌ์์ k์ ๊ณฑ ๊ฐ์ ๊ตฌํ๋ค.
// ๊ฐ ์๋ฆฌ์์ k์ ๊ณฑ ๊ฐ์ ๋ชจ๋ ํฉํ ๊ฐ == cal ์ด๋ค.
while(current != 0) {
cal += power(current % 10, k);
current /= 10;
}
// i์ ๋ํ ๊ฐ ์๋ฆฌ์์ k์ ๊ณฑ ๊ฐ์ ๋ชจ๋ ํฉํ ๊ฐ์ด
// i์ ๊ฐ๋ค๋ฉด ๊ทธ ์๋ ๋๋ฅด์์์ฆ ์์ด๋ค.
if(cal == i) {
answer[count] = i;
count++;
}
}
int[] ret = new int[count];
for(int i = 0; i < count; i++) {
ret[i] = answer[i];
}
return ret;
}
// ์๋๋ ํ
์คํธ์ผ์ด์ค ์ถ๋ ฅ์ ํด๋ณด๊ธฐ ์ํ main ๋ฉ์๋์
๋๋ค.
public static void main(String[] args) {
question_06 sol = new question_06();
int k = 3
int[] ret = sol.solution(k);
// ์คํ] ๋ฒํผ์ ๋๋ฅด๋ฉด ์ถ๋ ฅ๊ฐ์ ๋ณผ ์ ์์ต๋๋ค.
System.out.printf("solution ๋ฉ์๋์ ๋ฐํ ๊ฐ์ ");
System.out.printf(Arrays.toString(ret));
System.out.printf(" ์
๋๋ค.\n");
}
}
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Cos Pro 1๊ธ | ๋น์์ด ์ด๋ ๊ฐ๋ฅํ ์นธ ๊ฐ์ ์ฐพ๊ธฐ (0) | 2020.12.10 |
---|---|
Cos Pro 1๊ธ | ๋ฌธ์์ด ํฉ์ฑํ๊ธฐ, ์์ ํ์ (0) | 2020.12.10 |
๋ฐฑ์ค 1322 | ๋นํธ ์ฐ์ฐ, X์ K (0) | 2020.11.25 |
๋ฐฑ์ค 1158 | Queue, ์์ธํธ์ค ๋ฌธ์ (0) | 2020.11.25 |
๋ฐฑ์ค 10816 | ์ซ์ ์นด๋ 2 (0) | 2020.11.07 |