https://www.acmicpc.net/problem/2511
문제분석
첫 번째 줄에 A가 낼 카드 10장, 두 번재 줄에 B가 낼 카드 10장을 입력한다.
10라운드에 걸쳐 수를 비교하여 이기는 쪽이 +3점, 비기면 둘 다 +1점을 얻는다.
점수가 높은 쪽이 승, 동점일 경우 가장 마지막에 이긴 사람이 승리하는 것으로 한다.
10라운드 전부 비겼을 경우에만 비긴것으로 한다.
코드
a = list(map(int, input().split()))
b = list(map(int, input().split()))
a_cnt = b_cnt = 0
for i in range(10):
if a[i] > b[i]:
a_cnt += 3
elif a[i] < b[i]:
b_cnt += 3
else:
a_cnt += 1
b_cnt += 1
print(a_cnt, b_cnt)
if a_cnt > b_cnt:
print('A')
elif a_cnt < b_cnt:
print('B')
elif a_cnt == b_cnt == 10:
print('D')
else:
for i in range(1, 11):
if a[-i] > b[-i]:
print('A')
break
elif a[-i] < b[-i]:
print('B')
break
else:
continue
문제풀이
1. A와 B가 낸 숫자들을 리스트로 입력받았다.
2. 이후 각각의 라운드를 FOR문으로 비교해 이긴 쪽이 +3점, 비기면 둘 다 +1점 얻는 소스를 구현하였다.
3. 비교가 끝난 뒤 총점을 출력한다
4. 총점을 비교해 이긴 사람을 출력하고, 만약 둘 다 총점이 10점이라면 10라운드 모두 비긴것이므로 무승부 처리하였다.
5. 그것도 아니라면, 역순으로 비교해 10라운드부터 1라운드 순서 중 가장 늦게 이긴 사람이 이긴 것으로 출력했다.
'Koala - 5기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/C++] 1371번 가장 많은 글자 (1) | 2022.01.24 |
---|---|
[백준/python] - 5363번: 요다 (0) | 2022.01.24 |
[백준/python] 2750번 수 정렬하기 (0) | 2022.01.23 |
[백준/python] 2750번 수 정렬하기 (0) | 2022.01.23 |
[BOJ/python] 4458번 첫 글자를 대문자로 (0) | 2022.01.23 |