※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 27101번 문제인 Metric Matrices이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/27101
주어진 행렬이 metric matrix인지를 주어진 조건을 순서대로 만족하는지를 살펴보며 판단하는 문제이다.
주어지는 행렬의 크기가 충분히 작으므로, 각 조건을 차례대로 특별한 최적화 없이 직접적인 반복문을 돌며 확인하게끔 구현하는 것으로도 문제를 충분히 해결할 수 있다.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
typedef long long ll;
int N;
ll mat[30][30];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N;
for (int r = 0; r < N; r++) {
for (int c = 0; c < N; c++) {
cin >> mat[r][c];
}
}
for (int n = 0; n < N; n++) {
if (mat[n][n]) {
cout << 1;
return 0;
}
}
for (int r = 0; r < N; r++) {
for (int c = 0; c < N; c++) {
if (r == c) continue;
if (mat[r][c] <= 0) {
cout << 2;
return 0;
}
}
}
for (int r = 0; r < N; r++) {
for (int c = r + 1; c < N; c++) {
if (mat[r][c] != mat[c][r]) {
cout << 3;
return 0;
}
}
}
for (int x = 0; x < N; x++) {
for (int y = 0; y < N; y++) {
for (int z = 0; z < N; z++) {
if (mat[x][y] + mat[y][z] < mat[x][z]) {
cout << 4;
return 0;
}
}
}
}
cout << 0;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 7682 // C++] 틱택토 (0) | 2023.01.04 |
---|---|
[BOJ 5939 // C++] Race Results (0) | 2023.01.04 |
[BOJ 5938 // C++] Daisy Chains in the Field (0) | 2023.01.04 |
[BOJ 27106 // C++] Making Change (0) | 2023.01.03 |
[BOJ 17141 // C++] 연구소 2 (0) | 2023.01.03 |