문제1: 숫자의 합 구하기
N개의 숫자가 공백 없이 써 있다. 이 숫자를 모두 합해 출력하는 프로그램을 작성하시오.
입력
1번째 줄에 숫자의 개수 N(1<=N<=100), 2번째 줄에 숫자 N개가 공백 없이 주어진다.
출력
입력으로 주어진 숫자 N개의 합을 출력한다.
n=int(input())
m=input()
sum=0
for i in m:
sum+=int(i)
print(sum)
문제2: 평균 구하기
점수 중 최댓값을 M이라고 할 때 모든 점수를 점수/M*100으로 바꾼 뒤 평균을 구한다.
입력
1번째 줄에 시험을 본 과목의 개수, 2번째 줄에 각 과목의 시험 성적.
출력
바뀐 점수들의 평균을 구한다.
n=int(input())
score=list(map(int, input().split()))
new=[]
new_mean=0
for i in score:
new.append(i/max(score)*100)
new_mean=sum(new)/n
new_mean
여기서 점수를 입력 받을 때 map함수를 통해 input()을 띄어쓰기로 구분하여 점수를 입력하여 split() 메서드로 분리하여 리스트로 저장한 이 코드를 배웠다.
문제3: 구간 합 구하기1
수 N개가 주어졌을 때 i번째 수에서 j번째 수까지의 합을 구하는 프로그램을 작성하시오
입력
1번째 줄에 수의 개수 N, 합을 구해야 하는 횟수 M, 2번째 줄에 N개의 수가 주어진다. 3번째 줄부터는 M개의 줄에 합을 구해야 하는 구간 i와 j가 주어진다.
출력
총 M개의 줄에 입력으로 주어진 i번째 수에서 j번째 수까지의 합을 출력한다.
a1, a2=map(int, input().split())
arr=list(map(int, input().split()))
arr_sum=[0]
s=0
result=0
for i in arr:
s+=i
arr_sum.append(s)
for i in range(a2):
st,en=map(int, input().split())
print(arr_sum[en]-arr_sum[st-1])
1번째 for문에서 리스트의 각 요소까지의 합을 구한 arr_sum 리스트에 0을 넣어 초기화 하여 리스트 인덱스를 벗어 나는 오류를 방지했다.
2번째 for문에서 input()을 입력 받았는데 입력을 처음에 받는다는 내 생각을 다시 잡았다.