[#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 |
댓글
댓글 쓰기