반응형
2160번: 그림 비교
N(2≤N≤50)개의 그림이 있다. 각각의 그림은 5×7의 크기이고, 두 가지 색으로 되어 있다. 이때 두 가지의 색을 각각 ‘X’와 ‘.’으로 표현하기로 하자. 이러한 그림들이 주어졌을 때, 가장 비슷
www.acmicpc.net
구현해 brute force하는 문제였습니다.
풀이방법
1. 모든 그림 쌍에 대해 다른 정도를 비교해 계속 그림 정보를 갱신해줍니다.
2. 답이 한 개이므로 다른 정도 같은 여러 그림의 쌍을 생각할 필요가 없습니다.
Code
#include <bits/stdc++.h>
using namespace std;
int n;
vector <vector<string>> picture;
int minPic[2];
int minPivot = 0x7f7f7f7f;
int getDifference(vector<string> a, vector<string> b){
int cnt = 0;
for(int i = 0; i < a.size(); i++){
for(int j = 0; j < a[i].size(); j++){
if(a[i][j]!=b[i][j])cnt++;
}
}
return cnt;
}
int main(){
cin >> n;
for(int pic = 0; pic < n; pic++){
vector <string> s;
for(int i = 0; i < 5; i++){
string tmp;
cin >> tmp;
s.push_back(tmp);
}
picture.push_back(s);
}
for(int i = 0; i < n; i ++){
vector <string> onePic = picture[i];
for(int j = i+1; j < n; j++){
vector <string> secondPic = picture[j];
int difference = getDifference(onePic,secondPic);
if(difference < minPivot){
minPivot = difference;
minPic[0] = i+1;
minPic[1] = j+1;
}
}
}
cout << minPic[0] << ' ' << minPic[1] <<'\n';
}
'Algorithm > Brute Force' 카테고리의 다른 글
(C++) - 백준(BOJ) 2304번 : 창고 다각형 답 (6) | 2021.01.30 |
---|---|
(C++) - 백준(BOJ) 1145번 : 적어도 대부분의 배수 답 (0) | 2021.01.27 |
(C++) - 백준(BOJ) 1057번 : 토너먼트 답 (0) | 2021.01.22 |
(C++) - 백준(BOJ) 2985번 : 세 수 답 (0) | 2021.01.20 |
(C++) - 백준(BOJ) 1590번 : 캠프가는 영식 답 (0) | 2021.01.16 |