https://www.acmicpc.net/problem/14754
문제 풀이
이 문제를 보자마자 그냥 먼저 생각난게 각 행, 열 별로 최대값을 찾아서 표시해주자! 라고 생각을 했다.
티어가 실버 2 문제이길래 시간초과 뜰 줄 알았는데 맞더라... 뭐지...?
암튼 각 행,열 별로 max값을 찾고 bool 배열에 저장해준 뒤 나중에는 bool 배열이 false인 값을 최종값에 더해줬다.
소스 코드
#include <iostream>
using namespace std;
long long pizza[1001][1001] = { 0 };
bool pizza_max[1001][1001] = { false };
int main() {
int row, col;
cin >> row >> col;
//값 입력
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cin >> pizza[i][j];
}
}
// row를 기준으로 최대값 탐색
for (int i = 0; i < row; i++) {
int max_idx = 0;
long long max_col = 0;
for (int j = 0; j < col; j++) {
if (max_col < pizza[i][j]) {
max_idx = j;
max_col = pizza[i][j];
}
}
pizza_max[i][max_idx] = true;
}
//col을 기준으로 최대값 탐색
for (int j = 0; j < col; j++) {
int max_idx = 0;
long long max_col = 0;
for (int i = 0; i < row; i++) {
if (max_col < pizza[i][j]) {
max_idx = i;
max_col = pizza[i][j];
}
}
pizza_max[max_idx][j] = true;
}
// false인 값들을 더해준다.
long long max_result = 0;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
if (pizza_max[i][j] == false) {
max_result += pizza[i][j];
}
}
}
cout << max_result << '\n';
}
'알고리즘' 카테고리의 다른 글
[백준] 1932번 정수 삼각형 C++ 문제풀이 (0) | 2023.12.29 |
---|---|
[백준] 14746번 Closest Pair C++ 문제풀이 (0) | 2023.10.18 |
[백준] 14753번 MultiMax C++ 문제풀이 (0) | 2023.10.16 |
[백준] 17626번 Four Squares C++ 문제풀이 (1) | 2023.10.13 |
[백준] 17521번 Byte Coin C++ 문제풀이 (0) | 2023.10.13 |