[#56][알고리즘] Gravity
삼성 코드아카데미 > Gravity
(https://www.swexpertacademy.com/main/learn/course/subjectList.do?courseId=AVuPDN86AAXw5UW6)
C++풀이
| 
#include <iostream> 
#include <algorithm> 
using namespace std; 
int main() { 
    int test, a, b, number, dp[100][100] = { 0 }, count, answer; 
    cin >> test; 
    for (int i = 0; i < test; i++) { 
        answer = 0; 
        cin >> a >> b; 
        // 2차원 배열에 값 저장 
        for (int j = 0; j < a; j++) { 
            cin >> number; 
            int tmp = b - number; 
            for (int k = b-1; k >= tmp; k--) { 
                dp[k][j] = 1; 
            } 
        } 
        for (int i = 0; i < b; i++) { 
            for (int j = 0; j < a - 1; j++) { 
                count = 0; 
                // 상자가 존재할 때 
                if (dp[i][j] == 1) { 
                    for (int k = j + 1; k < a; k++) { 
                        // 상자가 존재하지 않는 칸의 수를 COUNT에 저장 
                        if (dp[i][k] == 0) { 
                            count++; 
                        } 
                    } 
                    //가장 큰 값 찾기 
                    answer = max(answer, count); 
                } 
            } 
        } 
        //답 출력 
        cout << answer << endl; 
    } 
    return 0; 
} | cs | 


댓글
댓글 쓰기