문제 설명
두 수가 주어진다. 각 숫자의 위치를 바꾸는 여러가지 경우의 수 중
첫번째 수가 두번째 수보다 더 큰 확률이 높다면 RED를,
두번째 수가 첫번째 수보다 더 큰 확률이 높다면 BLUE를
같다면 EQUAL을 출력하라.
예시
위 입력 값으로 나오는 경우의 수는 아래와 같다.
- 1,2,3 순으로 나열 : 314>159 RED
- 1,3,2 순으로 나열 : 341>195 RED
- 2,1,3 순으로 나열 : 134<519 BLUE
- 2,3,1 순으로 나열 : 143<591 BLUE
- 3,1,2 순으로 나열 : 431<915 BLUE
- 3,2,1 순으로 나열 : 413<951 BLUE
RED 2, BLUE 4로 BLUE가 출력된다.
규칙
굳이 모든 수를 바꿔가며 비교할 필요가 없다.
RED : BLUE
3 > 1
1 < 5
4 < 9
위처럼 각 인덱스의 숫자를 비교해서 갯수를 세면 끝이다.
숫자가 아무리 길고 배치를 바꾼다 해도 1:2의 비율은 변하지 않는다. 예시에서도 2:4의 비율로 BLUE가 이기듯 마찬가지이다.
소스코드
##########################################################
import sys
from collections import deque
input = sys.stdin.readline
# print = sys.stdout.write
def ip():return input().rstrip()
def ii():return int(input())
def mii():return map(int,input().rstrip().split())
def lmii():return list(map(int,input().rstrip().split()))
##########################################################
t = ii()
for _ in range(t):
n = ii()
A = list(map(int,list(ip())))
B = list(map(int,list(ip())))
awin = 0
bwin = 0
for i in range(n):
if A[i] < B[i]:
bwin+=1
elif A[i]>B[i]:
awin+=1
if awin>bwin:print('RED')
elif awin<bwin:print('BLUE')
else:print('EQUAL')