View
알고리즘 분류: 구현, 그리디 알고리즘
문제 링크: https://www.acmicpc.net/problem/1343
【 풀이 】
- 입력받을 보드판과 최종 결괏값을 선언한다(string).
- '.' 이 나올 때까지 순회한다.
- 한 글자씩 검사해, 글자가 'X'이면 카운트를 센다.
- '.' 이 나왔을 때 카운트가 홀수이면 반복문을 빠져나와 -1 을 출력한다.
- '.' 이 나왔을 때 카운트가 짝수이면 결괏값에 '.' 추가
- 카운트가 2가 되면 결과값에 "BB" 추가
- 카운트가 4가 되면 결과값에 "AAAA" 추가
- 최종 결과 출력
【 코드 】
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
int cnt = 0;
string board;
string output;
cin >> board;
// 보드 순회
for (int i = 0; i != board.size(); i++) {
if (board[i] == 'X') { cnt++; }
if (board[i] == '.') { output += '.';
if (cnt % 2 != 0) { break; }
else { cnt = 0; }
}
// 글자수가 2가 되면
if (cnt == 2 && board[i + 1] != 'X'){
output += "BB"; cnt = 0;
}
// 글자수가 4가 되면
if (cnt == 4){
output += "AAAA"; cnt = 0;
}
}
if (cnt % 2 == 1) cout << -1;
else cout << output;
return 0;
}
728x90
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 1026번: 보물 [C++] (0) | 2023.09.12 |
---|---|
[백준] 1205번: 등수 구하기 [C++] (0) | 2023.09.10 |
[백준] 1316번: 그룹 단어 체커 [C++] (0) | 2023.07.05 |
[백준] 1927번: 최소 힙 [C++] (0) | 2023.06.14 |
[백준] 17175번: 피보나치는 지겨웡~ [C++] (0) | 2023.06.14 |
reply