백준 17009 Winning Score

Yesol Lee·2022년 5월 19일
0

알고리즘

목록 보기
7/31
post-custom-banner

백준 17009 Winning Score

문제

a, b팀 스코어 각각 3개씩 받아 n13+n22+n3 값 크기 비교해서 A, B(이긴팀) or T(동점) 출력

코드

apple = banana = 0
for i in range(6):
    if i < 3: apple += int(input())*(3-i)
    else: banana += int(input())*(6-i)
if apple > banana: print('A')
elif apple < banana: print('B')
else: print('T')
  • 총 6번 input 받아 3번째까지는 apple에 계산 총점 더하고 그 후는 banana에 계산 총점을 더했다.
  • 그렇게 알아낸 apple과 banana의 값을 조건문으로 비교해 해당하는 글자를 출력했다.
  • 뭔가 더 짧은 코드 없나 해서 찾아봤는데 lambda와 문자열 인덱스를 사용한 멋진 방법이 있어서 가져와보았다.
g = lambda: int(input())
f = lambda: g()*3 + g()*2 + g()
a, b = f(), f()
print('ABT'[a<b + (a==b)*2])
  • python lambda: 짧은 익명함수.lambda 파라미터: 연산 형식으로 작성. 파라미터 없으면 그냥 () 이런 함수
  • int(input())을 그냥 변수에 담으면 입력값을 정수로 바꾼 하나의 값인데 lambda를 이용해 함수로 만들었다.
  • 입력값에 차례대로 3, 2, 1을 곱한 값을 더하는 부분도 lambda를 이용해 보기좋게 처리했다.
    python lambda
  • 프린트문도 문자열 인덱스를 사용해서 짧게 만듦. 필요한 문자열 'ABT'에 해당하는 인덱스값을 조건문의 결과인 true/false값을 조합해서 만들었다.
profile
문서화를 좋아하는 개발자
post-custom-banner

0개의 댓글