백준 1463번
1로 만들기
3으로 나누어 떨어지면 3으로 나누고 2로 나누어떨어지면 2로나누고 아니면 1을 뺄때 1을 만드는 최소 연산 횟수를 구해야한다.
DP로 풀어야하는데 아직 어떻게 풀어야할지 잘모르겠다.
다른사람 코드
import kotlin.math.min
fun main() {
var n = readLine()!!.toInt()
val dp : MutableList<Int> = mutableListOf(0,0)
for(i in 2..n){
dp.add(dp[i-1] + 1)
if(i%2 == 0) dp[i] = min(dp[i], dp[i/2]+1)
if(i%3 == 0) dp[i] = min(dp[i], dp[i/3]+1)
}
println(dp[n])
}
카드뷰로 쉽게 줄수있다.
<View>
사용
notifyDataSetChanged()
notifyItemChanged(position: Int)
notifyItemChanged(position: Int, payload: Obejct)
notifyItemRangeChanged(positionStart: Int, itemCount: Int)
notifyITemRangeChanged(positionStart: Int, itemCount: Int, payload: Obejct)
notifyItemInserted(position: Int)
notifyItemRangeInserted(positionStart: Int, itemCount: Int)
notifyItemMoved(fromPosition: Int, toPosition: Int)
notifyItemRemoved(position: Int)
notifyItemRangeRemoved(positionStart: Int, itemCount: Int)
adapter.notifyDataSetChanged()