-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
다른 풀이 방식
22.09.21 23:01 작성 조회수 218
0
측면과 정면을 입력받아 따로 front, right 배열에 할당하였습니다.
2차원 배열의 정면을 시작으로(n)해서 맨 뒤쪽까지 할당받는 식으로 접근하여 측면의 값과 정면의 값을 서로 비교하면서 값을 할당하였습니다.
#include <stdio.h>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n, i, j, pos = 0, sum = 0;
scanf("%d", &n);
vector<vector<int> >a(n + 1, vector<int> (n + 1, 0));
int front[n + 1] = {};
int right[n + 1] = {};
// front 입력
for(i = 1; i <= n; i++) {
scanf("%d", &front[i]);
}
// right 입력
for(i = 1; i <= n; i++) {
scanf("%d", &right[i]);
}
// 값 할당
for(i = n; i >= 1; i--) {
pos++;
for(j = 1; j <= n; j++) {
if(right[pos] <= front[j]) {
a[i][j] = right[pos];
} else if(front[j] == 0) {
a[i][j] = 0;
} else {
a[i][j] = front[j];
}
}
}
// 합 계산
for(i = 1; i <= n; i++) {
for(j = 1; j <= n; j++) {
sum += a[i][j];
}
}
printf("%d", sum);
return 0;
}
답변을 작성해보세요.
0
답변 1