๋ฌธ์
์ฝ๋
// 13:00 ~ 13:50
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
vector<vector<int>>v;
int N;
int dx[3] = {1,0,1};
int dy[3] = {0,1,1};
int find(int i, int k){
priority_queue<int>pq;
pq.push(v[i][k]);
for(int j=0; j<3; j++){
int nx = i+dx[j];
int ny = k+dy[j];
pq.push(v[nx][ny]);
}
pq.pop();
return pq.top();
}
vector<vector<int>> divide(vector<vector<int>> &v, int n){
vector<vector<int>>fin;
for(int i=0; i<n; i+=2){
vector<int>ing;
for(int k=0; k<n; k+=2){
ing.push_back(find(i,k));
}
fin.push_back(ing);
}
return fin;
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
cin>>N;
for(int i=0; i<N; i++){
vector<int>temp;
for(int k=0; k<N; k++){
int inp; cin>>inp;
temp.push_back(inp);
}
v.push_back(temp);
}
while(v.size()!=1){
vector<vector<int>>temp =divide(v, v[0].size());
v = temp;
}
cout<<v[0][0];
}
ํ์ด
2๋ฒ์งธ๋ก ํฐ ์๋ฅผ ์ฐพ๋ ๊ฑด๋ฐ ๋์ถฉ ์ฝ๊ณ ์ ์ผ ํฐ ์๋ฅผ ์ฐพ๋ค๊ฐ ์๊ฐ์ ์๋นํ์ต๋๋ค.
๋ถํ ํ์ฌ ํธ๋ ๊ตฌํ ๋ฌธ์ ์๋๋ฐ 2x2 ์ฉ ๋๋์ด์ ์ฐพ๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์ ์ ๊ทผํ๋ ์ธ๋ฑ์ค๋ฅผ i+2, k+2์ฉ ํด์ค ๊ฐ๋ฉฐ ๊ธฐ์ค์ ์ ์ก์๊ณ ๊ทธ ๊ธฐ์ค์ ์ผ๋ก๋ถํฐ ์ค๋ฅธ์ชฝ, ์๋, ์ค๋ฅธ์ชฝ ์๋ ๋๊ฐ์ ์ ์ฐพ์์ ํ์ ๋ฃ๊ณ , ๋ ๋ฒ์งธ๋ก ์์ ๊ฐ์ ๋ฐํํด ๊ฐ๋ฉด์ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ค์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์๋ก ๋ง๋ค ๋ฐฐ์ด์ ๋ ๋ค์ 2x2 ์ฉ ๋๋์ด ์ฐพ์ผ๋ฉฐ ์ต์ข ์ ์ผ๋ก ๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ 1์ด ๋ ๋๊น์ง ํ์ํ์ต๋๋ค.
๋ฌธ์ ๋ฅผ ๋ค ํ๊ณ ๋ค๋ฅธ์ฌ๋์ ํ์ด๋ ํ๋ฒ ์ฐพ์๋ณด์์ต๋๋ค.
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int p[1025][1025];
int n,ans;
//๋ ๋ฒ์งธ๋ก ํฐ ์๋ฅผ ๋ฐํํ๋ ํจ์
int Pulling(int x, int y)
{
vector <int > a;
for (int i = x; i < x + 2; i++)
for (int j = y; j < y + 2; j++)
a.push_back(p[i][j]);
sort(a.begin(), a.end());
return a[2];
}
int main()
{
cin >> n;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
cin >> p[i][j];
}
}
while (n > 1)
{
for (int i = 0; i < n; i+=2)
for (int j = 0; j < n; j+=2)
p[i/2][j/2] = Pulling(i,j); //๊ฐ๋ก ์ธ๋ก 2์นธ์ฉ ์์ง์ด๋ฉฐ p๊ฐฑ์
n /= 2;
}
cout << p[0][0] << '\n';
}
์ ์ฒ๋ผ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ์ฌ ๋ถํ ํ์ง ์๊ณ ๊ธฐ์กด์ ๋ฐฐ์ด์ ๊ณต๊ฐ๋ง ์ด์ฉํ์ฌ ํ์ผ์ จ๋๋ฐ, ์ด๊ฒ ์ข ๋ฉ๋ชจ๋ฆฌ ๋ฉด์์๋ ์กฐ๊ธ ๋ ํจ์จ์ ์ผ๋ก ๋ณด์ ๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 17141๋ฒ - ์ฐ๊ตฌ์ 2 (0) | 2022.05.27 |
---|---|
[๋ฐฑ์ค,c++] 1331๋ฒ - ๋์ดํธ ํฌ์ด (0) | 2022.05.08 |
[๋ฐฑ์ค,c++] 1268๋ฒ - ์์ ๋ฐ์ฅ ๊ตฌํ๊ธฐ (0) | 2022.05.07 |
[๋ฐฑ์ค,c++] 1932๋ฒ - ์ ์ ์ผ๊ฐํ (0) | 2022.04.04 |
[๋ฐฑ์ค,c++] 16926๋ฒ - ๋ฐฐ์ด ๋๋ฆฌ๊ธฐ1 (0) | 2022.04.04 |
[๋ฐฑ์ค,c++] 18511๋ฒ - ํฐ ์ ๊ตฌ์ฑํ๊ธฐ (0) | 2022.04.03 |
๋๊ธ