프로그래밍/파이썬 python

단계별로 풀어보기 6 - 심화 1 (4), 7 - 2차원 배열(1)

idealtrue 2023. 8. 5. 23:21
728x90

문제번호 25206번 너의 평점은

 

20줄에 걸쳐 전공과목명 학점 등급이 입력된다. 전공평점을 출력해야 한다.

 

답안 :

1  import sys
2  total_credit = 0
3  GP = 0
4  for _ in range(20) :
5      name, credit, mp = sys.stdin.readline().split()
6      total_credit += float(credit)
7      if mp == 'A+' :
8          GP += 4.5 * float(credit)
9      elif mp == 'A0' :
10         GP += 4.0 * float(credit)
11     elif mp == 'B+' :
12         GP += 3.5 * float(credit)
13     elif mp == 'B0' :
14         GP += 3.0 * float(credit)
15     elif mp == 'C+' :
16         GP += 2.5 * float(credit)
17     elif mp == 'C0' :
18         GP += 2.0 * float(credit)
19     elif mp == 'D+' :
20         GP += 1.5 * float(credit)
21     elif mp == 'D0' :
22         GP += 1.0 * float(credit)
23     elif mp == 'F' :
24         GP += 0.0 * float(credit)
25     elif mp == 'P' :
26            total_credit -= float(credit)
27 print(GP/total_credit)

 

comment :

# 표준입력을 받기 위해서 sys모듈을 가져오고, 전체평점에서 학점을 곱한 값에서 학점의 총합을 나누어 주기 위한 변수 두 개를 설정해준다.

# 20번 반복하는 반복문과, 세 종류에 대한 입력값을 받아주고, 각각의 과목에 대한 평점으로 기준을 나누어 전체평점 x 학점을 해준다.

# 만약에 pass과목이 있으면 학점을 제외시킨다.

# GPA를 구하는 출력문을 작성하였다.

 

----------------------------------------------------------

 

단계별로 풀어보기 7 - 2차원 배열(1)

 

----------------------------------------------------------

 

문제번호 2738번 행렬 덧셈

 

첫째 줄에 행렬의 크기 N M이 입력된다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 입력된다. 첫째 줄부터 N개의 줄에 행렬 A와 B를 더한 행렬을 출력해야 한다.

 

답안 :

1  import sys
2  A = []
3  B = []
4  N, M = map(int,input().split())
5  for i in range(N) :
6      A.append(list(map(int, sys.stdin.readline().split())))
7  for j in range(N) :
8      B.append(list(map(int, sys.stdin.readline().split())))
9  C = [[A[i][j] + B[i][j] for j in range(M)] for i in range(N)]
10 for row in C :
11     print(*row)

 

comment :

# 표준 입력을 받기 위해서 sys모듈을 불러오고, 빈 리스트 A, B를 지정해준다.

# N과 M을 받아주고, A와 B에 대해서 N행만큼 M열을 입력해준다.

# 각각의 원소를 더한 행렬 C를 작성해주고, 원소만 출력해주는 print(*)을 사용하여 출력해준다.

728x90