๋ฌธ์
์ฝ๋
#include <iostream>
#include <queue>
#include <algorithm>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int T; cin>>T;
while(T--){
string a, b; cin>>a>>b;
queue<int> zero, one;
int ans = 0;
for(int i=0; i<a.length(); i++){
if(a[i] != b[i]){
if(a[i] == '0') zero.push(i);
else if(a[i] == '1') one.push(i);
}
}
int len = min(zero.size(), one.size());
while(len--){ // ํ๋์ ์ด์ง์์์ ์๋ก ๋ค๋ฅธ ์๋ฆฌ์ ์๋ ๋ ์ซ์์ ์์น๋ฅผ ๋ฐ๊พผ๋ค.
swap(a[zero.front()], a[one.front()]);
zero.pop();
one.pop();
ans++;
}
for(int i=0; i<a.length(); i++){ // ํ๋์ ์ด์ง์์์ ์์์ ์๋ฆฌ์ ์ซ์๋ฅผ 0 ๋๋ 1๋ก ๋ฐ๊พผ๋ค.
if(a[i] != b[i]) ans++;
}
cout<<ans<<'\n';
}
}
ํ์ด
A๋นํธ์ B๋นํธ๊ฐ ์ฃผ์ด์ก์ ๋ A๋นํธ๋ฅผ B ๋นํธ๋ก ์๋์ ๋ ์ฐ์ฐ์ ๊ฐ์ง๊ณ ๋ง๋ค ์ ์๋ ์ต์ ์ฐ์ฐ ํ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ ๋๋ค.
- ํ๋์ ์ด์ง์์์ ์์์ ์๋ฆฌ์ ์ซ์๋ฅผ 0 ๋๋ 1๋ก ๋ฐ๊พผ๋ค.
- ํ๋์ ์ด์ง์์์ ์๋ก ๋ค๋ฅธ ์๋ฆฌ์ ์๋ ๋ ์ซ์์ ์์น๋ฅผ ๋ฐ๊พผ๋ค.
2๋ฒ ์ฐ์ฐ์ ์ต๋ํ ์ฌ์ฉํด์ผ ์ต์ ์ฐ์ฐ ํ์๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ํ์ด ์์ด๋์ด๋ 2๋ฒ ์ฐ์ฐ์ ์ต๋ํ ์ฌ์ฉํ ํ 1๋ฒ ์ฐ์ฐ์ ์ด์ฉํ๋ฉด ๋ฉ๋๋ค.
00110100 10010111
์์ ๊ฐ์ ์์๋ฅผ ๊ฐ์ง๊ณ ์ ๋ฆฌํด ๋ณด๊ฒ ์ต๋๋ค.
๋จผ์ 2๋ฒ ์ฐ์ฐ์ ์ต๋ํ ์ฌ์ฉํ๊ธฐ ์ํด์ A๋นํธ์ B๋นํธ์ ์ธ๋ฑ์ค๋ฅผ ๋น๊ตํด ๊ฐ๋ฉด์ ๋นํธ๊ฐ ๋ค๋ฅผ ๊ฒฝ์ฐ 0 ์ซ์์ 1 ์ซ์ ๊ฐ๊ฐ์ ์์น๋ฅผ ์๋์ ๊ฐ์ด ์ ์ฅํฉ๋๋ค.
- zero = [0, 6, 7]
- one = [2]
๊ทธ ํ, ๋ ์ค ์์ ์ฌ์ด์ฆ์ ํฌ๊ธฐ๋งํผ ๋ฐ๋ณตํ๋ฉด์ 0์ ์์น์ 1์ ์์น๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. ์์ ๊ฒฝ์ฐ 00110100์ 0๋ฒ์งธ ์ธ๋ฑ์ค์ 2๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.
๊ทธ ํ , 1๋ฒ ์ฐ์ฐ์ ์ํด A๋นํธ์ B๋นํธ์ ์ธ๋ฑ์ค๋ฅผ ๋น๊ตํด ๊ฐ๋ฉด์ ๋นํธ๊ฐ ๋ค๋ฅผ ๊ฒฝ์ฐ 0 ๋๋ 1๋ก ๋ฐ๊พธ๋ ์์ ์ ์ํํ๋ฉด ๋ฉ๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 22858๋ฒ - ์์ ๋ณต๊ตฌ(small) (0) | 2022.09.28 |
---|---|
[๋ฐฑ์ค,c++] 25644๋ฒ - ์ต๋ ์์น (0) | 2022.09.28 |
[๋ฐฑ์ค,c++] 1309๋ฒ - ๋๋ฌผ์ (0) | 2022.09.27 |
[๋ฐฑ์ค,c++] 1038๋ฒ - ๊ฐ์ํ๋ ์ (0) | 2022.09.27 |
[๋ฐฑ์ค,c++] 16935๋ฒ - ๋ฐฐ์ด ๋๋ฆฌ๊ธฐ 3 (0) | 2022.09.22 |
[๋ฐฑ์ค,c++] 10703๋ฒ - ์ ์ฑ (0) | 2022.09.21 |
๋๊ธ