[ BOJ / Python ] 13458번 시험 감독


이번 문제는 반복문 하나로 간단하게 해결할 수 있었다. 반복문 안에서 현재 시험장에서 b를 빼주고, 만약 현재 시험장의 학생 수가 0보다 클 경우에만 시험장의 학생 수가 c로 나눠 떨어진다면 몫을 결과 변수에 더하고, 나눠떨어지지 않으면 몫+1을 결과 변수에 더했다.

  • n을 입력받는다.
  • 시험장의 학생 수를 나타내는 리스트 student를 입력받는다.
  • b, c를 입력받는다.
  • 결과 변수 answer를 0으로 선언한다.
  • n번 반복하는 i에 대한 for문을 돌린다.
    -> student[i]에서 b를 뺀다.
    -> answer를 1 증가시킨다.
    -> 만약 student[i]가 0보다 클 경우,
    --> 만약 student[i]가 c로 나눠 떨어질 경우,
    ---> answer에 student[i]//c를 더한다.
    --> 그 외의 경우,
    ---> answer에 student[i]//c+1을 더한다.
  • answer를 출력한다.

Code

n=int(input())
student=list(map(int, input().split()))
b, c=map(int, input().split())
answer=0
for i in range(n):
    student[i]-=b
    answer+=1
    if student[i]>0:
        if student[i]%c==0:
            answer+=student[i]//c
        else:
            answer+=student[i]//c+1
print(answer)

좋은 웹페이지 즐겨찾기