당신과 친구는 n개의 문제로 이루어진 참/거짓(T/F) 문제 시험을 봤습니다.
여러분은 본인이 제출한 답안과 친구의 답안을 알고 있으며,
친구가 그 답안 중에서 k개의 문제를 정확하게 맞췄다는 것을 알고 있습니다.
그렇다면, 당신은 몇 개의 문제를 맞췄을까요?
당신이 정확하게 맞춘 최대 문제 수를 계산하세요.
(여러 경우가 있겠지만, 가장 많이 맞춘 경우의 수를 구하면 됩니다.)
입력의 첫 줄에는 데이터셋의 수를 나타내는 정수 이 포함됩니다.
각 데이터셋은 정확하게 를 나타내는 정수로 시작합니다.
데이터셋의 두 번째 줄에는 당신이 작성한 (1 ≤ ≤ 1000)개의 문자로 이루어진 답안이 포함됩니다.
각 문자는 'T' 또는 'F' 중 하나입니다.
데이터셋의 세 번째 줄에는 친구가 작성한 개의 문자로 이루어진 답안이 포함됩니다.
각 문자는 'T' 또는 'F' 중 하나입니다.
입력은 0 ≤ ≤ 을 만족합니다.
각 데이터셋에 대해, 한 줄에 최대로 정확하게 맞힐 수 있는 문제 수를 출력합니다.
간단한 greedy 문제.
본인이 제출한 답안과 친구가 제출한 답안 중 동일하게 작성한 답안을 기준으로 해당 값이 친구가 맞춘 값보다 큰지, 작은지, 같은지 이렇게 3가지로 분기를 나눠 각각 계산해주면 된다.
import sys
t = int(sys.stdin.readline().rstrip())
for i in range(t):
friend = int(sys.stdin.readline().rstrip())
cnt = 0
my = list(sys.stdin.readline().rstrip())
friends = list(sys.stdin.readline().rstrip())
for i in range(len(my)):
if my[i] == friends[i]:
cnt += 1
if cnt == 0:
print(len(friends)-friend)
elif cnt > friend:
diff = len(my) - cnt
print(friend + diff)
elif cnt == friend :
print(cnt)
elif cnt < friend:
diff2 = len(friends)-friend
print(cnt+diff2)