반응형
문제출처 : https://www.acmicpc.net/problem/1455
문제풀이) (a,b)를 뒤집는데 (0,0)부터 (a,b) 까지 뒤집어야 되므로 끝에서 부터 만약 1을 만나면 모두 뒤집어 보면 된다.
#include <iostream>
#include <cstdio>
using namespace std;
int coin[110][110];
void Reverse(int y,int x)
{
for(int i=0;i<=y;i++)
{
for(int j=0;j<=x;j++)
{
coin[i][j]=1-coin[i][j]; ///0,0 부터 y,x 위치까지 뒤집어 주자.
}
}
}
int main()
{
int n,m;
cin >> n >> m;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
scanf("%1d",&coin[i][j]);
}
}
int cnt=0;
for(int i=n-1;i>=0;i--)
{
for(int j= m-1;j>=0;j--)
{
if(coin[i][j]==1)
{
cnt++;
Reverse(i,j);
}
}
}
cout << cnt;
return 0;
}
반응형
'알고리즘 > 백준' 카테고리의 다른 글
백준1526-가장 큰 금민수(브론즈1) (0) | 2020.09.15 |
---|---|
백준1459 - 걷기(브론즈1) (0) | 2020.09.14 |
백준1453-피시방알바(브론즈1) (0) | 2020.09.12 |
백준1418번-K세준수(브론즈1) (2) | 2020.09.11 |
백준1402-아무래도이문제는A번난이도인것같다(브론즈1) (0) | 2020.09.10 |