https://www.acmicpc.net/problem/9506
9506๋ฒ: ์ฝ์๋ค์ ํฉ
๋ฌธ์ ์ด๋ค ์ซ์ n์ด ์์ ์ ์ ์ธํ ๋ชจ๋ ์ฝ์๋ค์ ํฉ๊ณผ ๊ฐ์ผ๋ฉด, ๊ทธ ์๋ฅผ ์์ ์๋ผ๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด 6์ 6 = 1 + 2 + 3 ์ผ๋ก ์์ ์์ด๋ค. n์ด ์์ ์์ธ์ง ์๋์ง ํ๋จํด์ฃผ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ. ์ ๋ ฅ ์ ๋ ฅ์ ํ ์คํธ ์ผ์ด์ค๋ง๋ค ํ ์ค ๊ฐ๊ฒฉ์ผ๋ก n์ด ์ฃผ์ด์ง๋ค. (2 < n < 100, 000) ์ ๋ ฅ์ ๋ง์ง๋ง์ -1์ด ์ฃผ์ด์ง๋ค. ์ถ๋ ฅ ํ ์คํธ์ผ์ด์ค ๋ง๋ค ํ์ค์ ํ๋์ฉ ์ถ๋ ฅํด์ผ ํ๋ค. n์ด ์์ ์๋ผ๋ฉด, n์ n์ด ์๋ ์ฝ์๋ค์ ํฉ์ผ๋ก ๋ํ๋ด์ด ์ถ๋ ฅํ๋ค
www.acmicpc.net
์ฝ๋ 1(ํ๋ฆฐ ์ฝ๋)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = 0;
while(n != -1) {
n = scan.nextInt();
int sum = 0;
for(int i=1; i<=n/2; i++) {
if(n%i == 0) {
sum += i;
}
if(sum == n) {
System.out.print(n + " = ");
for(int j=1; j<=n/2; j++) {
if(j == n/2) {
System.out.print(j);
} else if(n%j == 0){
System.out.print(j + " + ");
}
}
}
else if(sum > n) {
System.out.print(n + " is NOT perfect.");
}
}
System.out.println();
}
}
}
ํ์ด
์์ ์ ๋์จ๊ฑฐ๋ ๊ทธ๋๋ก ๋์ค์ง๋ง ... ์์ฒญ ๋ณต์กํ๊ฒ ํ์๋ค.
์ ๋ ฅ๋ฐ์ n์ ์ฝ์๋ฅผ ๋ค ๊ตฌํด์ sum๋ณ์์ ํฉํ๊ณ ,
๋ง์ฝ sum๊ณผ n์ด ๊ฐ์ผ๋ฉด ์กฐ๊ฑด์ ๋ง๊ฒ ์ถ๋ ฅํด์ฃผ๊ธฐ ์ํด ๋ค์ํ๋ฒ ์ฝ์๋ฅผ ์ฐพ์ ์ถ๋ ฅํด์ฃผ๋ ์์ผ๋ก ํ๋ค..
ํ๋ฉด์๋ ์ด๊ฒ๋ง๋ ์ถ์๋๋ฐ ์ถ๋ ฅ์ด๊ณผ? ๋ผ๊ณ ๋จ๋ฉด์ ์ ์ถ์ด ์๋๋ค..
์ฝ๋ 2(์ ๋ต ์ฝ๋)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while(true) {
int n = scan.nextInt();
if(n == -1)
break;
int[] arr = new int[n]; // ์ฝ์ ๋ด์ ๋ฐฐ์ด
int sum = 0; // ์ฝ์๋ค์ ํฉ
int index = 0; // ์ฝ์ ๋ด์ ๋ฐฐ์ด์ ์ธ๋ฑ์ค
for(int i=1; i<n; i++) {
if(n%i == 0) { // ์ฝ์์ผ ๋
arr[index++] = i; // ์ฝ์ ์ ์ฅ
sum += i; // ์ฝ์ ํฉ
}
}
if(sum != n) {
System.out.println(n + " is NOT perfect.");
continue;
}
System.out.print(n + " = ");
for(int i=0; i<index; i++) {
if(i == index-1)
System.out.print(arr[i]);
else
System.out.print(arr[i] + " + ");
}
System.out.println();
}
scan.close();
}
}
ํ์ด
์ฝ์๋ฅผ ๋ด์ ๋ฐฐ์ด์ ์ ์ธํ ํ ์ฝ์์ผ๋ ๋ฐฐ์ด์ ๋ฃ์ด์ ํ๋จํ๋ ์์ผ๋ก ํด๊ฒฐํ๋ค.
๋ฐ์ ์กฐ๊ฑด์ ๋ง๊ฒ ์ถ๋ ฅ๋ง ์ํด์ฃผ๋ฉด ๋.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 1120๋ฒ: ๋ฌธ์์ด(๊ทธ๋ฆฌ๋) (0) | 2020.01.23 |
---|---|
[๋ฐฑ์ค] 10610๋ฒ: 30(๊ทธ๋ฆฌ๋) (0) | 2020.01.23 |
[๋ฐฑ์ค] 11656๋ฒ: ์ ๋ฏธ์ฌ ๋ฐฐ์ด (0) | 2020.01.22 |
[๋ฐฑ์ค] 2606๋ฒ: ๋ฐ์ด๋ฌ์ค(DFS, BFS) (0) | 2020.01.22 |
[๋ฐฑ์ค] 1260๋ฒ: DFS์ BFS (0) | 2020.01.22 |
๋๊ธ