컴굥일지
[BOJ/백준 13413][C++] 오셀로 재배치 본문
반응형
문제
https://www.acmicpc.net/problem/13413
문제 내용
문자열 두 개를 입력받아서 한 문자열을 다른 문자열로 바꾸기 위해 몇 번의 연산이 필요한지 계산하면 된다.
이때 연산의 종류로는 2가지가 있다.
1. 배치된 말 중에 임의의 2개의 말을 골라 서로의 위치를 바꾼다
2. 말 1개를 들어 뒤집는다
문제 풀이
초기 상태와 목표 상태에서 서로 일치하지 않는 위치에서 w와 b의 개수를 구한다. (초기 상태 기준으로 구했다)
잘 생각해보면 따로 계산할 것이 없이 큰 값이 결괏값이 된다.
코드
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
//입력
int testcase;
cin >> testcase;
for (int i = 0; i < testcase; i++) {
int num; cin >> num; //글자수
int w = 0, b = 0;
string input, base;
cin >> input >> base;
for (int i = 0; i < num; i++) {
if (input[i] == base[i]) continue;
else {//글자가 다를 때
if (input[i] == 'B') b++;
else w++;
}
}
//문제 해결 및 결과 출력
if (w > b) cout << w << '\n';
else cout << b << '\n';
}
}
반응형
'알고리즘 > 코테 문제' 카테고리의 다른 글
[BOJ/백준 19941][C++] 햄버거 분배 (0) | 2022.03.11 |
---|---|
[BOJ/백준 11501][C++] 주식 (0) | 2022.03.10 |
[BOJ/백준 9237][C++] 이장님 초대 (0) | 2022.03.08 |
[BOJ/백준 1946][C++] 신입 사원 (0) | 2022.03.07 |
[BOJ/백준 13305][C++] 주유소 (0) | 2022.03.04 |
Comments