※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 1388번 문제인 바닥 장식이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/1388
1388번: 바닥 장식
형택이는 건축가이다. 지금 막 형택이는 형택이의 남자 친구 기훈이의 집을 막 완성시켰다. 형택이는 기훈이 방의 바닥 장식을 디자인했고, 이제 몇 개의 나무 판자가 필요한지 궁금해졌다. 나
www.acmicpc.net
전체 바닥을 행방향으로 읽어나가면서 - 조각의 개수를 세고 열방향으로 읽어나가면서 | 조각의 개수를 세는 것으로 문제를 해결하자.
조각의 개수는 각 방향으로 읽어나가면서 해당 방향으로의 조각이 끊어지는 순간을 세는 식으로 구할 수 있다.
아래는 제출한 소스코드이다.
#include <iostream>
#include <string>
using namespace std;
int R, C;
string board[50];
int ans;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> R >> C;
for (int r = 0; r < R; r++) cin >> board[r];
for (int r = 0; r < R; r++) {
bool tgt = 0;
for (int c = 0; c < C; c++) {
if (board[r][c] == '-') tgt = 1;
else {
if (tgt) ans++, tgt = 0;
}
}
if (tgt) ans++;
}
for (int c = 0; c < C; c++) {
bool tgt = 0;
for (int r = 0; r < R; r++) {
if (board[r][c] == '|') tgt = 1;
else {
if (tgt) ans++, tgt = 0;
}
}
if (tgt) ans++;
}
cout << ans;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 10565 // C++] Salary Inequity (1) | 2024.02.01 |
---|---|
[BOJ 1888 // C++] 곰팡이 (0) | 2024.01.31 |
[BOJ 11123 // C++] 양 한마리... 양 두마리... (1) | 2024.01.29 |
[BOJ 2790 // C++] F7 (0) | 2024.01.28 |
[BOJ 2784 // C++] 가로 세로 퍼즐 (1) | 2024.01.27 |