๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿ’ป Computer Science/- Data Structure, Algorithm

[์•Œ๊ณ ๋ฆฌ์ฆ˜ PS] ๋ฐฑ์ค€ 10870 ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ 5 ์ž๋ฐ” ๋ฌธ์ œ ํ’€์ด

by Wonit 2021. 1. 23.

๋ฌธ์ œ

ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ๋ฐฑ์ค€์˜ 10870๋ฒˆ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜5 ์˜ ์ ‘๊ทผ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ ๊ธ€ ์ž…๋‹ˆ๋‹ค.
์ •๋‹ต ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹œ๋ ค๋ฉด solve url ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ

์˜ˆ์ œ ์ž…๋ ฅ & ์ถœ๋ ฅ

 

ํ•ด๊ฒฐ๋ฒ•

ํ•ด๋‹น ๋ฌธ์ œ ๋˜ํ•œ ์žฌ๊ท€ ํ˜ธ์ถœ์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ํ•™์Šตํ•  ๋•Œ ์—ฐ๊ตฌํ–ˆ๋˜ ์ฃผ์ œ์ด๋‹ค.


ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋Š” ๋ฌธ์ œ์— ์žˆ๋Š” ํŠน์„ฑ๋Œ€๋กœ n = (n-1) + (n-2) ์ธ ์ˆ˜๋ฅผ ๋‚˜์—ดํ•œ ์ˆ˜์—ด์ด๋‹ค.

 

๊ตฌํ˜„ ์ž์ฒด๋Š” ์ง€๋‚œ ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์ž˜ ๋”ฐ๋ผ์™”๋‹ค๋ฉด ํž˜๋“ค์ง€ ์•Š์„ ๊ฒƒ์œผ๋กœ ๋ณด๊ณ  ์‹œ๊ฐ„ ๋ณต์žก๋„์™€ ์ถœ๋ ฅ ์ž๋ฃŒํ˜•์— ๋Œ€ํ•ด์„œ ๊ณ ๋ฏผํ•ด๋ณด์ž.

 

์‹œ๊ฐ„ ๋ณต์žก๋„

ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ์กฐ๊ธˆ ์ƒ๊ฐํ•ด๋ณผ ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค.

 

ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์˜ ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ํ•œ ๋ฒˆ ๊ทธ๋ ค๋ณด์ž๋ฉด,

์œ„์™€ ๊ฐ™์ด ํŠธ๋ฆฌ ํ˜•ํƒœ์˜ ๊ตฌ์กฐ๋ฅผ ๋„๊ฒŒ ๋œ๋‹ค.


ํŠธ๋ฆฌ ์ค‘์—์„œ ์ž์‹ ๋…ธ๋“œ๊ฐ€ 2๊ฐœ๋กœ ์™„์ „ํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŠธ๋ฆฌํ˜•ํƒœ๊ฐ€ ๋œ๋‹ค.


๊ทธ๋Ÿผ ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ํŠน์„ฑ์— ์˜ํ•ด์„œ ๋†’์ด n์ธ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŠธ๋ฆฌ์˜ ์ด ๋…ธ๋“œ๋Š” 2^n์ด๋ฏ€๋กœ ์žฌ๊ท€๋กœ ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ์ ‘๊ทผํ•œ๋‹ค๋ฉด 2^n ์ฆ‰ ์ตœ๋Œ€ 2์˜ 20์ œ๊ณฑ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๊ฒŒ ๋œ๋‹ค.


๊ทธ๋Ÿผ 2์˜ 10์Šน์ด 1024์ด๋ฏ€๋กœ 1024 * 1024๋Š” 1000๋งŒ์ด๋‹ค.


๋ณดํ†ต ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ 1์ดˆ์— 1์–ต๋ฒˆ์˜ ์—ฐ์‚ฐ์„ ์ปค๋ฒ„ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•˜๋‹ˆ ์ถฉ๋ถ„ํžˆ ์žฌ๊ท€๋กœ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ด๋‹ค.

์˜ค๋‹ต ํ›„๋ณด

์ด๋ฒˆ ๋ฌธ์ œ์—์„œ๋„ 20๋ณด๋‹ค ์ž‘์€ ์ž์—ฐ์ˆ˜ ๋˜๋Š” 0 ์ด๋ผ๊ณ  ํ–ˆ์œผ๋‹ˆ 0์ด input์œผ๋กœ ๋“ค์–ด์˜ฌ case๋ฅผ ์—ผ๋‘ํ•ด์•ผ ํ•œ๋‹ค.


๊ทธ๋Ÿผ 0๊ณผ 1, 2์˜ ๋ฐ˜ํ™˜ ๊ฐ’์„ ๊ฐ๊ฐ ๋‹ค๋ฅด๊ฒŒ ์ƒ๊ฐํ•ด์•ผ ํ•œ๋‹ค.


0์˜ ๋ฐ˜ํ™˜ ๊ฐ’์€ 0์ด์–ด์•ผ ํ•˜๊ณ , 1๊ณผ 2์˜ ๋ฐ˜ํ™˜๊ฐ’์€ 1์ด์–ด์•ผ ํ•จ์„ ์—ผ๋‘ํ•ด๋‘์ž.

์ •๋‹ต ์ฝ”๋“œ

import java.io.*;

public class Main {
  public static void main(String[] args) throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

    int n = Integer.parseInt(br.readLine());
    bw.write(String.valueOf(fibonacci(n)));

    bw.flush();
    bw.close();
  }

  private static int fibonacci(int n) {
    if(n == 0) return 0;
    else if(n == 1 || n == 2) return 1;
    else return fibonacci(n-1) + fibonacci(n-2);
  }
}

์ •๋‹ต ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹œ๋ ค๋ฉด solve url ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€