IT&개발/Baekjoon

[Python] 백준 10214번 - Baseball

nimoes._. 2024. 3. 23. 16:00
728x90
반응형

Baseball

문제 )

경근이는 수업 과제의 일환으로 연세대학교의 역사를 조사하고 있었다. 케케묵은 도서관 구석에서 경근이가 발견한 것은 역대 연고전의 야구경기 실황 기록문서였다. 하지만 문서를 가지고 있음에도 불구하고 한 눈에 당시의 경기 승패를 파악하기에는 어려움이 많았는데, 문서에는 회차별 양 팀 획득 점수만이 적혀져 있기 때문이었다. 경근이는 주어진 방대한 자료를 해석하는 것이 귀찮았기 때문에 절친한 프로그래머 친구인 당신에게 도움을 요청했다.

주어진 실황 기록문서에서 어떤 팀이 이겼는지를 알아내 경근이를 도와주자!

입력 )

입력 파일의 첫 번째 줄에 테스트 케이스의 수를 의미하는 자연수 T가 주어진다. 그 다음에는 T개의 테스트 케이스가 주어진다.

각 테스트 케이스는 9줄에 걸쳐서 입력되며, 매 줄마다 해당 회의 연세대 득점 Y와 고려대 득점 K가 공백으로 구분되어 주어진다. 이 두 수는 0이상 9이하이다.

출력 )

각각의 케이스마다 한 줄에 연세대가 이겼을 경우 "Yonsei", 고려대가 이겼을 경우 "Korea", 비겼을 경우 "Draw"를 출력한다.

내 풀이 )

# 방법1 - 각 회차별 점수를 저장하고 싶을 때
T = int(input())
Yonsei = []
Korea = []

Y_sum = 0
K_sum = 0

# 테스트 케이스(T)만큼 반복
for i in range(T):
    # 9회까지의 점수
    for j in range(9):
        Y, K = input().split()
        # 문자열 -> 정수 변환
        Y = int(Y)
        K = int(K)
        # Y는 Yonsei 리스트에, K는 Korea 리스트에 넣기
        Yonsei.append(Y)
        Korea.append(K)
      
    Y_sum = sum(Yonsei)
    K_sum = sum(Korea)
    
    if Y_sum > K_sum:
        print('Yonsei')
    elif Y_sum < K_sum:
        print('Korea')
    else:
        print("Draw")

 

# 방법2 -총점 계산만 하고 싶을 때
T = int(input())

Y_sum = 0
K_sum = 0

for i in range(T):
    for j in range(9):
        Y, K = input().split()
        K = int(K)
        Y = int(Y)
        Y_sum += Y
        K_sum += K

    if Y_sum > K_sum:
        print('Yonsei')
    elif Y_sum < K_sum:
        print('Korea')
    else:
        print("Draw")

해설 )

- 위 두 방법 다 결과는 똑같지만 혹시나 다른 상황에서 리스트에 있는 값을 사용할 일이 있다면 방법 1 사용

 

- append() : 리스트에 값 추가

ex) a_List.append(5) : a_List라는 이름을 가진 리스트에 정수 5 넣기  

- sum() : 리스트나 튜플에 있는 숫자 합 계산

ex) a_List = [1, 2, 3]

      sum(a_List)는 6

결과 )

728x90
반응형