반응형
리뷰
푸는 방법은 많겠지만 나는 시간복잡도의 이점을 활용하기 위해 딕셔너리를 활용했다.
문제 풀이
- 각 라운드가 진행될 때마다 1~4의 키값을 가진 a, b 딕셔너리를 각각 초기화 해준다.
- 리스트내 값을 딕셔너리 value에 더해준다.
- winner 변수를 초기화 해주고 -1일 경우 무승부 0일 경우 a승리 1일 경우 b승리로 사용할 것이다.
- 별이 가장 좋은 딱지이므로 4부터 시작하여 1까지 내림차순으로 value 값을 비교해 준다.
- winner 변수 값에 알맞게 승자 혹은 무승부를 출력해 준다.
참고 사항
리스트에서 딕셔너리로 값을 전달할때 리스트의 맨 앞 숫자는 딱지의 개수를 나타내므로 전달해 주지 않아야 한다.
정답 코드
def q14696():
# 백준 14696번 딱지놀이 파이썬
n = int(input())
for _ in range(n):
a = {4: 0, 3: 0, 2: 0, 1: 0}
b = {4: 0, 3: 0, 2: 0, 1: 0}
lst1 = list(map(int, input().split()))
lst2 = list(map(int, input().split()))
for i in range(1, lst1[0] + 1):
a[lst1[i]] += 1
for i in range(1, lst2[0] + 1):
b[lst2[i]] += 1
winner = -1
for i in range(4, 0, -1):
if a[i] > b[i]:
winner = 0
break
if a[i] < b[i]:
winner = 1
break
print('A' if winner == 0 else 'B' if winner == 1 else 'D')
q14696()
728x90
반응형
'알고리즘 공부 > 파이썬(Python)' 카테고리의 다른 글
백준 10158번 개미 파이썬 (4) | 2024.06.28 |
---|---|
백준 2477번 참외밭 파이썬 (0) | 2024.06.27 |
백준 2669번 직사각형 네개의 합집합의 면적 구하기 파이썬 (0) | 2024.06.26 |
SWEA 1486번 D4 장훈이의 높은 선반 파이썬 (0) | 2024.06.26 |
SWEA 12712번 D2 파리퇴치3 파이썬 (0) | 2024.06.26 |