Algorithm Problems

[Cos Pro 2급] 4차 2번 - 체력 시험 합격 인원

WakaraNai 2021. 1. 24. 14:21
728x90
반응형

문제

 

체력시험 합격 인원을 알아보려고 합니다. 체력시험 종목으로는 윗몸일으키기, 팔굽혀펴기, 달리기가 있습니다. 종목별 합격기준은 다음과 같습니다.

 

| 윗몸일으키기 | 팔굽혀펴기 | 달리기 |

| 80점 이상 | 88점 이상 | 70점 이상 |

* 통과한 종목이 하나 이하거나, 통과 점수의 반을 넘기지 못한 종목이 있다면 불합격입니다.

* 그 외에는 합격입니다.

 

시험에 합격한 인원을 구하기 위해 다음과 같이 프로그램 구조를 작성했습니다.

1. 통과한 종목이 몇 개인지 셉니다.

2. 통과 점수의 반을 넘기지 못한 종목이 몇 개인지 셉니다.

3. 통과한 종목이 하나보다 많고 통과 점수의 반을 넘기지 못한 종목이 없으면 통과한 인원으로 셉니다.

각 종목 기록을 담고 있는 리스트 scores가 매개변수로 주어질 때, 시험에 합격한 인원을 return 하도록 solution 함수를 작성하려 합니다.

 

 

시험에 합격한 인원을 return합니다.

#####예시

| score | return |

| [[30, 40, 100], [97, 88, 95]] | 1 |

| [[90, 88, 70], [85, 90, 90], [100, 100, 70], [30, 90, 80], [40, 10, 20], [83, 88, 80]] | 4 |

 

 

Python

#score = [[30,40,100], [97,88,95]]
score = [[90,88,70],[85,90,90],[100,100,70],[30,90,80],[40,10,20],[83,88,80]]


def solution(score):
  cutline = [80, 88, 70]
  passExam = 0
  for s in score:
      #윗몸일으키기
      cnt = 0
      fail=False
      for i in range(len(s)) : # len(s) ==3
          if s[i] >= cutline[i]:
              cnt +=1
          elif s[i] < cutline[i]/2:
              fail=True
              break
          else:
              cnt+=0

      if cnt>1 and not(fail):
          passExam += 1
 
   return (passExam)

print(solution(score))

 

728x90
반응형