-
[구름] lv2: 환경과 쥐 크기의 상관관계(Python)Algorithm PS👩🏻💻/구름 2024. 6. 11. 21:19
1. 문제 링크
구름LEVEL
난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.
level.goorm.io
문제 풀이
- 집단에 있는 쥐 크기를 기준으로 [x - 2, x + 2] 범위의 숫자들만 대표값이 될 수 있다.
- 그러므로 대표값이 될 수 있는 숫자들을 a_size, b_size로 모두 넣어 탐색한다.
- (10 ** 5) * 5(범위값) 이므로 시간 복잡도에도 걸리지 않음.
코드
from collections import Counter, deque n = int(input()) arra = list(map(int, input().split())) arrb = list(map(int, input().split())) dica = Counter(arra) dicb = Counter(arrb) xa, xb = 0, 0 acount = 0 bcount = 0 a_size = set(list(dica.keys())) b_size = set(list(dicb.keys())) # a, b에 있는 키 값을 기준으로 [-2, +2]의 키 값을 더해줍니다. # size에 없는 키 범위 추가해주는 곳! for a in dica.keys(): for i in range(5): if i == 3: continue a_size.add(a + i) for b in dicb.keys(): for i in range(5): if i == 3: continue b_size.add(b + i) a_size = deque(a_size) b_size = deque(b_size) # A의 대표값 찾는 곳 while a_size: a = a_size.popleft() temp = 0 for i in range(5): key = a - 2 + i if key in dica: temp += dica[key] if acount < temp: acount = temp xa = a # B의 대표값 찾는 곳 while b_size: b = b_size.popleft() temp = 0 for i in range(5): key = b - 2 + i if key in dicb: temp += dicb[key] if bcount < temp: bcount = temp xb = b print(xa, xb) if xa > xb: print("good") else: print("bad")