반응형
문제링크 : https://www.acmicpc.net/problem/9455
단순 구현 문제였습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #include <iostream> using namespace std; int M, N, a[101][101], t,ans,cnt; int main() { cin >> t; while (t--) { cin >> M >> N; for (int i = 1; i <= M; i++) for (int j = 1; j <= N; j++) a[i][j] = 0; ans = 0; for (int i = 1; i <= M; i++) for (int j = 1; j <= N; j++) cin >> a[i][j]; for (int j = 1; j <= N; j++) { for (int i = M; i >= 1; i--) { cnt = 0; if (a[i][j] == 1)//행의 원소가 1이라면 { for (int k = i+1; k <= M; k++)//1이나올때까지 아래로 내려가며 0의 개수를 세준다 { if (a[k][j] == 1) { break; } else cnt++; } ans += cnt; //마지막 1이 나오기 직전 0의 인텍스와 처음 1이 나온 인덱스의 값을 바꿔서 박스를 옮겨준다 swap(a[i+cnt][j], a[i][j]); } } } cout << ans << '\n'; } } | cs |
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 5717번 : 상근이의 친구들 (0) | 2017.03.17 |
---|---|
(C++) - 백준(BOJ) 10820번 : 문자열 분석 답 (0) | 2017.03.17 |
(C++) - 백준(BOJ) 11966번 : 2의 제곱인가? 답 (0) | 2017.03.10 |
(C++) - 백준(BOJ) 2720 : 세탁소 사장 동혁 답 (0) | 2017.02.27 |
(C++) - 백준(BOJ)코딩 3058번 : 짝수를 찾아라 (0) | 2017.02.26 |