cnt = int(input())
scores = list(map(int,input().split()))
m = max(scores)
total = 0
for i in scores :
i = i/m*100
total = total + i
print(total/cnt)
저번에 알게되었던 map(int,input().split()) 을 활용했다. 저 map 은 iterator 로 반환되기 때문에 리스트로 받고 싶으면 list()를 활용해야 한다.
cnt = int(input())
result_arr = []
for i in range(cnt) :
q = input()
arr = [j for j in q]
score = 0 # 각각의 점수
result = 0 # 점수 총합
for n in range(len(arr)) :
if arr[n] == "O" :
score += 1
result = result + score
else :
score = 0
result_arr.append(result)
for r in result_arr :
print(r)
1) 문자열을 배열로 각각 넣는 것은 [j for j in q] 이런 식으로 표현했다.
근데 이것보다 더 간편하게 할 수 있는 방법은 q=list(input()) 으로 하면 되는 것 같다.... 왜 이 생각을 못했지..
2) 나 같은 경우에는 하나의 퀴즈 결과에서 각각 답의 점수를 score , 그 점수들을 합친 합계를 result 라고 표현했다. (다 풀고 인터넷에서 몇몇 정답 코드 봤는데 보통 이런식으로 한듯..!)
3) 처음에 틀렸는데 오답인 이유가.. 나중에 print() 를 for i in range(cnt) 안에서 해버려서 그렇다. 저 for 문 안에 print 문을 넣으면 input 하나 하면 바로 print 되는 식이니까..! (앞으로는 주의하자)
4) 또 초반에 틀렸던 부분은 if arr[n] == "0" 부분이다. 여기서 순서가 중요한데 처음에는 score 을 1로 초기화하고 result = result + score 한다음 score 을 하나씩 더했다. 그렇게 되면 맨 처음이 "X" 로 시작되면 계산이 완전히 달라지기 때문에 오답이다.