๋ฌธ์
์ฝ๋
#include <iostream>
using namespace std;
int N, M;
char map[3001][3001];
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
cin>>N>>M;;
for(int i=0; i<N; i++){
string inp; cin>>inp;
for(int k=0; k<M; k++){
map[i][k] = inp[k];
}
}
int move_cnt = 1e9;
for(int i=0; i<M; i++){ // ๋ช ์นธ ์ด๋ํ ์ง ์ฐพ๊ธฐ
int meteor = 0;
int ground = 0;
for(int k=0; k<N; k++){
if(map[k][i] == 'X') meteor = k + 1;
if(map[k][i] == '#'){
ground = k + 1;
break;
}
}
if(meteor !=0 && ground != 0){
move_cnt = min(move_cnt, ground - meteor - 1);
}
}
for(int i=0; i<M; i++){ // ์ ์ฑ ์ด๋
for(int k=N-1; k>=0; k--){
if(map[k][i] == 'X'){
map[k+move_cnt][i] = 'X';
map[k][i] = '.';
}
}
}
for(int i=0; i<N; i++){ // ์ถ๋ ฅ
for(int k=0; k<M; k++){
cout<<map[i][k];
}
cout<<'\n';
}
}
ํ์ด
๋ฌธ์ ๋ฅผ ๋จผ์ ์ดํดํด ๋ณด์๋ฉด ์ผ์ชฝ ์ ๋ ฅ์์ x(์ ์ฑ) ๋ญํ ์ด๋ฅผ ๋ (#) ์๊น์ง ๋ด๋ฆด ์ ์์ ๋งํผ ์ต๋ํ ๋ด๋ ค์ผ ํฉ๋๋ค.
๋ฐ๋ผ์ ๊ฐ์ฅ ๋ ์ ๊ทผ์ ํ X(์ ์ฑ)์ ์ฐพ์์ ํด๋น ์ ์ฑ๊ณผ ๋ ๊ณผ์ ๊ฑฐ๋ฆฌ๋งํผ ์ ์ฒด ์ ์ฑ์ ๋ด๋ฆฌ๋ฉด ๋ฉ๋๋ค.
์ ์ ๋ ฅ ๊ฐ์ ๊ฒฝ์ฐ (1, 3)์ ์ ์ฑ๊ณผ (3, 3)์ ๋ ๊ณผ์ ๊ฑฐ๋ฆฌ์ฐจ๊ฐ ์ ์ผ ์๊ณ , ๊ฑฐ๋ฆฌ ์ฐจ์ด๋ ํ ์นธ์ ๋๋ค. ๋ฐ๋ผ์ ์ ์ฒด ์ ์ฑ์ ์๋๋ก ํ ์นธ ๋ด๋ฆฌ๋ฉด ๋ฉ๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 12782๋ฒ - ๋นํธ ์ฐ์ ์ง์ (0) | 2022.09.27 |
---|---|
[๋ฐฑ์ค,c++] 1038๋ฒ - ๊ฐ์ํ๋ ์ (0) | 2022.09.27 |
[๋ฐฑ์ค,c++] 16935๋ฒ - ๋ฐฐ์ด ๋๋ฆฌ๊ธฐ 3 (0) | 2022.09.22 |
[๋ฐฑ์ค,c++] 22860๋ฒ - ํด๋ ์ ๋ฆฌ (small) (0) | 2022.09.21 |
[๋ฐฑ์ค,c++] 14500๋ฒ - ํ ํธ๋ก๋ฏธ๋ ธ (0) | 2022.09.18 |
[๋ฐฑ์ค,c++] 21278๋ฒ - ํธ์์ด ๋ ๋ง๋ฆฌ ์นํจ (0) | 2022.09.18 |
๋๊ธ