코드
#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
#include <string>
#include <cmath>
#include <queue>
#include <map>
#include <set>
using namespace std;
int n, lh, rh, rl, ll, body;
string s;
char a[1003][1003];
pair<int, int> head = { -1, -1 };
pair<int, int> heart = { -1, -1 };
pair<int, int> b;
void FASTIO() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
}
int main() {
FASTIO();
cin >> n;
for (int i = 0; i < n; i++) {
cin >> s;
for (int j = 0; j < n; j++) {
a[i][j] = s[j];
if (head.first == -1 && head.second == -1 && s[j] == '*') {
head = { i, j };
}
}
}
heart = { head.first + 1, head.second };
for (int i = 0; i < heart.second; i++) {
if (a[heart.first][i] == '*') lh++;
}
for (int i = heart.second + 1; i < n; i++) {
if (a[heart.first][i] == '*') rh++;
}
for (int i = heart.first + 1; i < n; i++) {
if (a[i][heart.second] == '*') {
body++;
b = { i, heart.second };
}
}
for (int i = b.first + 1; i < n; i++) {
if (a[i][b.second - 1] == '*') ll++;
}
for (int i = b.first + 1; i < n; i++) {
if (a[i][b.second + 1] == '*') rl++;
}
cout << (heart.first + 1) << " " << (heart.second + 1) << '\n';
cout << lh << " " << rh << " " << body << " " << ll << " " << rl << '\n';
return 0;
}
풀이
머리의 위치를 찾아주면, 구현을 통해서 쉽게 해결할 수 있는 문제. 조건에 따라 심장의 위치와 팔, 다리, 몸통의 길이를 구해주면 된다.
'백준' 카테고리의 다른 글
[백준] 2243번 사탕상자 C++ 코드 (0) | 2024.11.11 |
---|---|
[백준] 17484번 진우의 달 여행(Small) C++ 코드 (3) | 2024.11.11 |
[백준] 1205번 등수 구하기 C++ 코드 (0) | 2024.11.11 |
[백준] 2535번 아시아 정보올림피아드 C++ 코드 (0) | 2024.11.11 |
[백준] 28419번 더하기 C++ 코드 (0) | 2024.11.11 |