두 번째 줄부터 입력값이 8개가 주어지는데 (HP), (MP), (공격력), (방어력) 4개 이후 증감되는 (HP), (MP), (공격력), (방어력)이 주어진다고 합니다.
arr 이라는 변수로 이것을 모두 튜플로 담아서 문제에 나온 공식을 이용하여 전투력을 출력해보겠습니다.
주의할 점은 HP와 MP는 1 미만의 값이 나오면 1로 설정해주고, 공격력은 0 미만의 미만의 값이 나오면 0으로 설정해줘야 합니다. 그러므로 if문을 이용해서 값들을 구해줄 수 있습니다.
t =int(input())for i inrange(t): arr =tuple(map(int,input().split())) HP = arr[0]+ arr[4]if HP <1: HP =1 MP = arr[1]+ arr[5]if MP <1: MP =1 ATK = arr[2]+ arr[6]if ATK <0: ATK =0 DEF = arr[3]+ arr[7]print(HP +5*MP +2*ATK +2*DEF)
해당 문제까지 연속되는 O의 개수만큼 점수를 얻고, 그 점수를 출력하는 문제입니다.
일단 입력받는 문자열이 붙어있는데 튜플을 이용하여 한 글자씩 나누어줍시다.
t =int(input())for i inrange(t): arr =tuple(map(int,input().split())
이러면 O, O, X, X, O, X, X, O, O, O로 한 글자씩 나누어져서 튜플형으로 바뀌게 됩니다.
한 문제씩 답안을 받는 것은 for문으로 쉽게 구할 수 있습니다. 연속된 점수를 받게 만드는 것도 if문으로 이용하여 for문안에 받을 수 있는 점수 값을 1씩 추가하거나 0으로 바꾸는 것으로 구현할 수 있겠습니다.
t =int(input())for i inrange(t): arr =tuple(input()) score =0#총 점수 x =0#더할 점수for j inrange(len(arr)):# if/else로 O가 나오면 x에 1점을 추가하고, X면 x = 0으로 만들어주고 더함if arr[j]=='O': x +=1else: x =0 score += xprint(score)
튜플로 풀 수 있는 문제들은 모두 리스트로 풀 수 있지만, 리스트로 풀 수 있는 문제들은 튜플로 풀 수 없는 문제가 많기 때문에 저는 보통 전부 다 리스트로 풀고 있습니다.