728x90
SMALL

for _ in range(int(input())):
n = int(input())
initial = input()
target = input()
b_diff = sum(1 for i in range(n) if initial[i] != target[i] and initial[i] == 'B')
w_diff = sum(1 for i in range(n) if initial[i] != target[i] and initial[i] == 'W')
print(max(b_diff, w_diff))
- 초기 문자열과 목표 문자열 간의 차이를 계산하고, 더 큰 차이를 나타내는 문자의 카운트를 출력하면 됩니다.
- 이것이 가능한 이유는 두 문자의 자리를 바꿔야 하는 과정은 하나의 작업으로 생각할 수 있고, (중복)
- 문자가 아예 바뀌어야 하는 경우에도 하나의 작업으로 생각되기 때문입니다.
728x90
LIST
'알고리즘 문제 풀이 > 랜덤 마라톤 (solved.ac)' 카테고리의 다른 글
| 🥉 27961번: 고양이는 많을수록 좋다 (1) | 2024.08.19 |
|---|---|
| 🥈 27648번: 증가 배열 만들기 (0) | 2024.08.08 |
| 🥈 30980번: 여중생 파댕이와 공부를 (1) | 2024.07.29 |
| 🥈 21760번: 야구 시즌 (0) | 2024.07.26 |
| 🥉 5586번: JOI와 IOI (3) | 2024.07.25 |