[백준/파이썬] 2511번

민정·2023년 1월 20일
0

[백준/파이썬]

목록 보기
39/245
post-thumbnail

백준 2511번

문제

https://www.acmicpc.net/problem/2511

코드

a = list(map(int, input().split()))
b = list(map(int, input().split()))

sum1 = 0
sum2 = 0
score = []

for i in range(10):
    if a[i] > b[i]:
        sum1 += 3
        score.append('A')
    elif a[i] == b[i]:
        sum1 += 1
        sum2 += 1
        score.append('D')
    else:
        sum2 += 3
        score.append('B')
for i in reversed (score):
    if i == 'A' :
        last = 'A'
        break 
        
    elif i == 'B':
        last = 'B'
        break
    else :
        last = ''

print(sum1, sum2)

if score.count('A') > score.count('B'):
    print('A')
elif score.count('B') > score.count('A'):
    print('B')
elif ((score.count('A') == score.count('B') )and (last =='A')):
    print('A')
elif ((score.count('A') == score.count('B') )and (last =='B')):
    print('B')
else:
    print('D')

풀이

분명 더 간단한 방법이 있을테지만...

a[i]와 b[i]의 값을 비교하면서 a의 값이 크다면 sum1에 3을 더하고 score에 A를 저장해줍니다. b의 값이 크다면 sum2에 3을 더해주고 score에 B를 저장합니다. 두 값이 같다면 sum1,sum2 모두 1을 더해주고 score에 D를 저장합니다.

또한 sum1,sum2의 값이 같을 경우를 대비하여 for문을 사용합니다. 이때 제일 마지막에 이긴 사람이 승자가 되므로 reverse를 사용하여 반복문을 반대로 돌려줍니다. D를 제외한 값중에 먼저 나오는 값을 last 값으로 정의해주고 break문을 통해 for문을 나옵니다.

count 함수를 사용하여 누가 승자인지를 출력합니다.

profile
パㅔバ6ㅇr 덤벼ㄹΓ :-0

0개의 댓글