dev/algorithm
BOJ / 9461๋ฒ / ํ๋๋ฐ ์์ด [Go] [Python3]
crscnt
2020. 8. 3. 21:00
๐ฉ๐ป๐ป ๋ฌธ์
9461๋ฒ: ํ๋๋ฐ ์์ด
๋ฌธ์ ์ค๋ฅธ์ชฝ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ผ๊ฐํ์ด ๋์ ๋ชจ์์ผ๋ก ๋์ฌ์ ธ ์๋ค. ์ฒซ ์ผ๊ฐํ์ ์ ์ผ๊ฐํ์ผ๋ก ๋ณ์ ๊ธธ์ด๋ 1์ด๋ค. ๊ทธ ๋ค์์๋ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ผ๋ก ์ ์ผ๊ฐํ์ ๊ณ์ ์ถ๊ฐํ๋ค. ๋์ ์์ ๊ฐ์ฅ ๊ธด ๏ฟฝ
www.acmicpc.net
โ๐ป ํ์ด
๐จ Go
package main
import (
"fmt"
"os"
"bufio"
)
func main() {
reader := bufio.NewReader(os.Stdin)
var t int
fmt.Fscanln(reader, &t)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
for i :=0; i<t; i++ {
var n int
fmt.Fscanln(reader, &n)
lengths := calculate(n)
fmt.Fprintf(writer, "%d\n", lengths[n-1])
}
}
func calculate(n int) (lengths []int) {
lengths = append(lengths, 1, 1, 1)
if n <= 3 {
return
}
for i := 3; i < n+1 ; i++ {
lengths = append(lengths, lengths[i-2]+ lengths[i-3])
}
return
}
๐จ Python3
import sys
def calculate(n):
lengths = [1, 1, 1]
if n <= 3:
return lengths
for i in range(3, n+1):
lengths.append(lengths[i-2]+lengths[i-3])
return lengths
if __name__ == "__main__":
t = int(sys.stdin.readline())
for i in range(t):
n = int(sys.stdin.readline())
lengths = calculate(n)
print(lengths[n-1])
728x90