오일러 프로젝트 81

Julia 풀이

Julia의 경우에는 다차원 배열을 기본적으로 지원해주고 있어서 동일한 동적 계획법으로는 다음과 같이 코드가 만들어진다. Julia의 기본 라이브러리에서 http를 어떻게 사용하는지는 아직 파악하지 못하였으므로, 데이터 파일을 저장해서 사용한다.

별도의 함수를 제작하지 않고 하나의 코드블럭 (실질적으로는 open()함수의 콜백)에서 바로 처리한다. 그외에 Julia의 배열관련 함수 및 다중 변수 for 문의 도움을 받으면 매우 간단한 코드가 나오게 된다.

@time open("/Users/sooop/Downloads/matrix.txt") do f
    t = zeros(Int, 80, 80)
    m = parse.(Int, hcat(split.(readlines(f), ",")...))
    t[1,:] = accumulate(+, m[1,:])
    t[:,1] = accumulate(+, m[:,1])
    for row=2:80,col=2:80
        t[row,col] = min(t[row-1,col], t[row,col-1]) + m[row,col]
    end
    println(t[end])
end