๋ฐ์ํ
30๋ถ์ ๋ ๊ณ ๋ฏผํด๋ดค๋๋ฐ ํผ๋ณด๋์น ๋ฌธ์ ๋ ์ฒ์์ด๋ผ ๊ฐ์ด ์์กํ์ ๊ฒ์ํด๋ณด๊ณ ํ์๋ค
ํผ๋ณด๋์น ๋ฐฐ์ด์ ์์ ๋ง๋ ํ
์ ๋ ฅ๊ฐ๊ณผ ๋ฐฐ์ด์ ๊ฐ์ ๋ด๋ฆผ์ฐจ์ ๋น๊ตํ๋ฉด๋๋ค.
* ๋๋ ์์ ์ ๋ ฅ๊ฐ์ ๋งค๋ฒ ์ ๋ ฅํ๋๊ฒ ๊ท์ฐฎ์์..(์์ ์ ๋ ฅ์ด 5๊ฐ๋ฉด ์ ๋ง..)
ํ ์คํธ์์ ํ์ฉํ๋ ค๊ตฌ ๋ฉ์๋๋ฅผ ๋๋์ด ์์ฑํ๋ค
import java.util.ArrayList;
import java.util.Scanner;
class Fibonacci{
int size = 0;
int[] input;
ArrayList<Integer> fibo = new ArrayList<Integer>();
void init(){
int k=2;
fibo.add(0);
fibo.add(1);
while(fibo.get(k-1)<=1000000000){
int temp = fibo.get(k-1) + fibo.get(k-2);
fibo.add(k, temp);
k++;
}
}
void scan(){
Scanner scan = new Scanner(System.in);
size = scan.nextInt();
input = new int[size];
for (int i = 0; i < input.length; i++) {
input[i] = scan.nextInt();
}
}
void process(){
// for (Integer integer : fibo) {
// System.out.println(integer);
// }
// System.out.println(fibo.size());
for (int i = 0; i < input.length; i++) {
StringBuffer output = new StringBuffer("");
for (int j = fibo.size()-1; j >= 1 ; j--) {
if(input[i] >= 0){
if(input[i] >= fibo.get(j)){
input[i] = input[i] - fibo.get(j);
output.insert(0, " "+fibo.get(j));
}
}
}
System.out.println(output.toString().trim());
}
}
}
public class Main {
public static void main(String[] args) {
Fibonacci f = new Fibonacci();
f.init();
f.scan();
f.process();
}
}
class MainTest {
void scan_input(String inputed){
InputStream in = new ByteArrayInputStream(inputed.getBytes());
System.setIn(in);
}
@Test
void test1() {
Fibonacci f = new Fibonacci();
f.init();
scan_input("4\n" +
"100\n" +
"200\n" +
"12345\n" +
"1003");
f.scan();
f.process();
}
}
๋ฐ์ํ
'๐ฏ Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 1026๋ฒ : ๋ณด๋ฌผ (0) | 2021.10.27 |
---|---|
๋ฐฑ์ค 1946๋ฒ : ์ ์ ์ฌ์ (0) | 2021.10.26 |
๋ฐฑ์ค 2217๋ฒ : ๋กํ (์๊ฐ์ด๊ณผ ํด๊ฒฐ๊ณผ์ ) (0) | 2021.10.25 |
๋ฐฑ์ค 2839๋ฒ : ์คํ ๋ฐฐ๋ฌ (2) | 2021.10.23 |
๋ฐฑ์ค 19941๋ฒ : ํ๋ฒ๊ฑฐ ๋ถ๋ฐฐ (0) | 2021.10.21 |