ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [BaekJoon] 1149번 : RGB 거리
    SW Test/BaekJoon 2021. 4. 19. 01:09
    λ°˜μ‘ν˜•
    • 이 글은 c++둜 풀이λ₯Ό μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

    문제

     

    μ˜ˆμ‹œ

     

    풀이

    • DPλ₯Ό μ΄μš©ν•˜μ—¬ ν’€ 수 μžˆλŠ” 문제둜 κ·œμΉ™μ„ 잘 μƒκ°ν•˜λ©΄ λ©λ‹ˆλ‹€.
    • 2차원 배열을 λ§Œλ“€κ³  행은 μ§‘μ˜ 수λ₯Ό 가리킀고, 열은 3κ°€μ§€μ˜ 색상 크기둜 μ„ μ–Έν•©λ‹ˆλ‹€.
    • iν–‰ j열은 j색상을 μΉ ν•œλ‹€κ³  κ°€μ •ν–ˆμ„ λ•Œ, i 번째 μ§‘κΉŒμ§€ 집을 μΉ ν•˜λŠ” μ΅œλŒ€ λΉ„μš©μ„ κ³„μ‚°ν•©λ‹ˆλ‹€.
    • 첫 번째 ν–‰μ—μ„œλŠ” 이전에 색을 μΉ ν•œ 집이 μ—†κΈ° λ•Œλ¬Έμ— μžμ‹ μ˜ 색상을 μΉ ν•˜λŠ” κ°’μœΌλ‘œ μ΄ˆκΈ°ν™”ν•©λ‹ˆλ‹€.
    • 두 번째 ν–‰λΆ€ν„°λŠ” 이전 ν–‰κ³Ό κ²ΉμΉ˜μ§€ μ•ŠλŠ” μ—΄ μ€‘μ—μ„œ μ΅œλŒ€κ°’μ„ μ„€μ •ν•˜λ©΄ λ©λ‹ˆλ‹€.
    • ex) 2ν–‰ 1μ—΄μ—μ„œλŠ” 1ν–‰ 2μ—΄κ³Ό 1ν–‰ 3μ—΄ λ‘˜ 쀑 μ΅œλŒ€κ°’μ— 2ν–‰ 1열에 빨간집을 μΉ ν•˜λŠ” 값을 λ”ν•˜λ©΄ λ©λ‹ˆλ‹€.
    #include<iostream>
    using namespace std;
    
    
    int main(){
        int num;
        cin>>num;
        
        int arr[1005][3];
        for(int i=0;i<num;i++){
            for(int j=0;j<3;j++){
                cin>>arr[i][j];
            }
        }
        
        int sum[1005][3];
        sum[0][0] = arr[0][0];
        sum[0][1] = arr[0][1];
        sum[0][2] = arr[0][2];
        
        for(int i = 1;i<num;i++){
            sum[i][0] = min(sum[i-1][1], sum[i-1][2])+arr[i][0];
            sum[i][1] = min(sum[i-1][0], sum[i-1][2])+arr[i][1];
            sum[i][2] = min(sum[i-1][0], sum[i-1][1])+arr[i][2];
        }
        
        cout<<min(sum[num-1][0], min(sum[num-1][1], sum[num-1][2]));
    }
    • μΆ”κ°€λ‘œ κΆκΈˆν•œμ μ΄λ‚˜ μˆ˜μ •ν•  λΆ€λΆ„ 있으면 λŒ“κΈ€λ‘œ λ‚¨κ²¨μ£Όμ„Έμš”.
    λ°˜μ‘ν˜•
Designed by Tistory.