[구름 LEVEL] 환경과 쥐 크기의 상관관계


· 생쥐 배열을 오름차순으로 정렬
· 정렬된 생쥐 배열에서 앞에서부터 작은 순으로 꺼내서 큐에 저장
· 큐의 첫 요소와 마지막 요소의 차이가 4보다 크다면 첫 요소를 Pop, 이를 반복
· 이렇게 찾은 서브리스트의 길이가 최대 서브리스트의 길이보다 크다면, 최대 서브리스트를 해당 서브리스트로 대체
from collections import deque
def find_max_sublist(nums, diff):
# 현재 하위 리스트를 저장할 sublist와 최대 하위 리스트를 저장할 max_sublist
sublist = deque()
max_sublist = []
# 입력 리스트의 각 숫자에 대해 반복
for num in nums:
# 현재 숫자를 sublist에 추가
sublist.append(num)
# sublist의 첫 번째 요소와 마지막 요소의 차이가 'diff'를 초과하지 않도록 함
while sublist[-1] - sublist[0] > diff:
# 조건을 만족할 때까지 sublist의 앞쪽 요소를 제거
sublist.popleft()
# 현재 sublist의 길이가 max_sublist의 길이보다 크면 max_sublist를 갱신
if len(sublist) > len(max_sublist):
max_sublist = list(sublist)
return max_sublist
_ = input()
a = sorted(map(int, input().split())) # A 리스트를 정렬
b = sorted(map(int, input().split())) # B 리스트를 정렬
# max_sublist 찾기
max_list_a = find_max_sublist(a, 4) # 첫 번째 리스트에서 차이가 4 이하인 max_sublist를 찾음
max_list_b = find_max_sublist(b, 4) # 두 번째 리스트에서 차이가 4 이하인 max_sublist를 찾음
# 결과 출력
result_a = max_list_a[-1] - 2 # A의 max_sublist의 마지막 요소에서 2를 뺀 값
result_b = max_list_b[-1] - 2 # B의 max_sublist의 마지막 요소에서 2를 뺀 값
print(result_a, result_b)
print("good" if result_a >= result_b else "bad")
