Search
Duplicate
📗

오셀로 재배치

주차
문제번호
13413
언어
C++
티어
실버
유형
그리디
문자열
nj_Blog
nj_상태
이해도
100%
풀이
사람
이해도 2
13 more properties

문제접근

자리를 바꾸는게 최소 연산의 핵심. 따라서, 흰 → 검의 수와 검 → 흰의 수를 비교하여 결국 흰검은 흰색이 현재 더 많다를 의미, 검흰은 현재 검은색이 더 많다를 의미하기 때문에 둘 중 더 많은 수와 적은 수의 차만큼 교체 연산이 이루어지고 나머지는 뒤집어 색상을 바꾸는 방식을 택해야함
→ 흰검, 검흰 중 더 많은 수를 선택하면 됨

놓쳤던 부분

코드

2692 KB

76 ms

#include <iostream> #include <string> #include <algorithm> using namespace std; int main(void) { int t; int n; string input; string target; int answer = 0; ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> t; for (int testCase = 0; testCase < t; testCase++) { cin >> n; cin >> input >> target; int whiteToBlack = 0; int blackToWhite = 0; for (int i = 0; i < n; i++) { if (input[i] == 'W' && input[i] != target[i]) whiteToBlack++; else if (input[i] == 'B' && input[i] != target[i]) blackToWhite++; } answer = max(whiteToBlack, blackToWhite); cout << answer << "\n"; } return (0); }
C++
복사