[BOJ]一二三プラスPython&Kotlin
問題に答えろ!
これは簡単なDP問題です.
問題では、nは11に制限されているため、11個の配列を作成し、それらによって注釈することができる.
memorizationを行う配列名がdpの場合
式は次のとおりです.
私の知っている限りでは、Pythonはアルゴリズムの問題を解く際にprint関数の制約はそれほど大きくありません.複数回使用しても問題がある場合がございます例えば、printを最大10万回使用する必要があるという問題も可決された.しかし,kotlinではprintlnが多く用いられるためstringBuilderを用いて出力効率を向上させる.
次は
これは簡単なDP問題です.
問題では、nは11に制限されているため、11個の配列を作成し、それらによって注釈することができる.
memorizationを行う配列名がdpの場合
式は次のとおりです.
dp[i] = dp[i-1] + dp[i-2] + dp[i-3]
これは問題をすばやく解くことができる問題です.私の知っている限りでは、Pythonはアルゴリズムの問題を解く際にprint関数の制約はそれほど大きくありません.複数回使用しても問題がある場合がございます例えば、printを最大10万回使用する必要があるという問題も可決された.しかし,kotlinではprintlnが多く用いられるためstringBuilderを用いて出力効率を向上させる.
次は
Python
の解答です.import sys
input = sys.stdin.readline
T = int(input())
dp = [0] * 12
dp[1] = 1
dp[2] = 2
dp[3] = 4
for i in range(4, 12):
dp[i] = dp[i-1] + dp[i-2] + dp[i-3]
for _ in range(T):
print(dp[int(input())])
次はKotlin
の解答です.import java.io.BufferedReader
import java.io.InputStreamReader
fun main() {
val br = BufferedReader(InputStreamReader(System.`in`))
val T = br.readLine().toInt()
val dp = IntArray(12){0}
dp[1] = 1
dp[2] = 2
dp[3] = 4
for (i in 4 until 12) {
dp[i] = dp[i-1] + dp[i-2] + dp[i-3]
}
val sb = StringBuilder()
var n: Int
for (i in 0 until T) {
n = br.readLine().toInt()
sb.append("${dp[n]}\n")
}
println(sb)
}
개발
は예술
서비스
は작품
です.Reference
この問題について([BOJ]一二三プラスPython&Kotlin), 我々は、より多くの情報をここで見つけました https://velog.io/@dev-junku/BOJ-1-2-3-더하기-in-Python-Kotlinテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol