행복은 성적순이 아니잖아요.

yongju·2022년 10월 28일
0

Algorithm-weekly-goorm

목록 보기
3/5
post-thumbnail

구름 알고리즘 위클리 [2주차 문제 1]


문제 정리
사용할 파라미터 :
l 과목별 학생수
s 구름이의 등수
n _a+ 성적 순 비율
k 과목의 수행평가 개수
m a+컷
V_i_=받은 수행평가 점수

조건:
1) 구름이의 백분율은 n%보다 좋아야한다.(백분율이 좋다==백분율이 낮다.)
2) V_i 점수들이 모두 m보다 높아야 한다.

코드

t=int(input())

inputs,l, s, n, k, m, V,v,grade=[], [], [], [], [], [],[],[],[]

for i in range(t):
  inputs.append(input())
  l.append(int(inputs[i].split(" ")[0]))
  s.append(int(inputs[i].split(" ")[1]))
  n.append(int(inputs[i].split(" ")[2]))
  k.append(int(inputs[i].split(" ")[3]))
  m.append(int(inputs[i].split(" ")[4]))
  V.append(inputs[i].strip().split(" ")[5:])

  if n[i]>=100-((l[i]-s[i])/l[i])*100:
    for j in range(len(V[i])):
      if m[i]<=int(V[i][j]):
        grade.append(1)

      else:
        grade.append(0)

  else:
    grade.append(0)

if 0 in grade:
	print(0)
else:
	print(1)

코드 설명

t=int(input())

inputs,l, s, n, k, m, V,v,grade=[], [], [], [], [], [],[],[],[]

for i in range(t):
  inputs.append(input())
  l.append(int(inputs[i].split(" ")[0]))
  s.append(int(inputs[i].split(" ")[1]))
  n.append(int(inputs[i].split(" ")[2]))
  k.append(int(inputs[i].split(" ")[3]))
  m.append(int(inputs[i].split(" ")[4]))
  V.append(inputs[i].strip().split(" ")[5:])

파라미터 입력을 받아온다. 이때, 입력끝에 공백이 들어가도 정상 출력할 수 있도록 strip()을 사용하여 양쪽 공백을 지운다.

  if n[i]>=100-((l[i]-s[i])/l[i])*100:
    for j in range(len(V[i])):
      if m[i]<=int(V[i][j]):
        grade.append(1)

      else:
        grade.append(0)

  else:
    grade.append(0)

조건1의 수식) n>=((l-s)/l)*100
∵ 구름이의 백분율은 n%보다 좋아야한다.(백분율이 좋다==백분율이 낮다.)
백분율 공식: (구름이보다 성적 낮은 학생들의 수 / 전체 학생수) *100

2) V_i 점수들이 모두 m보다 높아야 한다.
m<V_i

위 두 조건이 모두 만족하면 grade에 1을 넣는다.

if 0 in grade:
	print(0)
else:
	print(1)

grade에 0이 하나라도 있으면 0을 출력한다.

주의
리스트가 주가되어 실행되기 때문에 인덱싱이 중요함.
append와 '='를 이용하여 할당하는 방법이 다르다
=를 사용하는 것은 이미 행렬의 크기가 지정이 됐고 replace하는 개념.
append는 행렬의 크기가 지정이 되지 않아서 계속 뒤로 붙여넣을때 씀.

출력예시

profile
AI dev

0개의 댓글