taek0622/Algorithm-Notes

[Question] BOJ1904 - dp 튜플과 배열 시간 차이

Opened this issue · 0 comments

dp 문제를 풀 때 같은 부분을 tuple이 배열로 바뀌었을 뿐인데 시간이 4~5배 정도 차이가 나는 이유가 궁금하다.

우선 아래 코드는 BOJ1904번 문제를 tuple을 사용하여 푼 방법이다.

let N = Int(readLine()!)!
var dp = (1, 2)

if N < 3 {
    print(N)
} else {
    for _ in 3...N {
        dp = (dp.1, (dp.0 + dp.1) % 15746)
    }

    print(dp.1)
}

이 부분에서 dp를 튜플로 풀면 12ms 정도의 시간이 걸리는데, 배열을 사용하면 56~60ms 정도의 시간이 걸린다.