import sys
n = int(sys.stdin.readline())
a = map(int, sys.stdin.readline().split())
b, c = map(int, sys.stdin.readline().split())
ans = 0
for i in range(n):
for j in a:
j -= b
ans += 1
while j > 0:
j -= c
ans += 1
print(ans)
시간초과가 떴다. 아마 반복문을 너무 많이 써서 그런 거 같다.
n은 어차피 정수만 들어오기 때문에 int를 쓰지 않아도 된다.
int(stdin.readline()) 대신 stdin.readline()을 사용하면 시간이 28ms 단축된다.
a는 입력받고 리스트로 처리한다.
b, c는 입력받고 map에 넣는다.
총 감독 숫자가 될 변수 ans를 선언하고 0으로 초기화한다.
반복문 (강의실 개수만큼 반복)
1. 만약 총감독관(b)이 한 강의실에 배정된 학생 수(a[i])보다 많다면,
학생 수에서 감시 가능한 인원만큼 빼준다.
총 감독관 수를 1 늘린다.
최종 총감독관 수를 출력한다.
import sys
n = sys.stdin.readline()
a = list(map(int, sys.stdin.readline().split()))
b, c = map(int, sys.stdin.readline().split())
ans = 0
for i in range(len(a)):
if a[i] > b:
a[i] -= b
ans += 1
if a[i] % c == 0:
ans += a[i] // c
else:
ans += (a[i] // c) + 1
else:
ans += 1
print(ans)
(23.4.13 업데이트)
import sys
n = int(sys.stdin.readline())
a = list(map(int, sys.stdin.readline().split()))
b, c = map(int, sys.stdin.readline().split())
gam = 0
gam += n
for i in range(n):
a[i] -= b
if a[i] > 0:
if (a[i] % c) == 0:
gam += a[i] // c
else: gam += a[i] // c + 1
print(gam)
gam은 총 감독의 수를 저장하는 변수이다.
(+ 23/5/19)
n = int(input())
a = list(map(int, input().split()))
b, c = map(int, input().split())
ans = 0
ans += n
for i in a :
i -= b
if i > 0 :
if i % c == 0 :
ans += i // c
else : ans += i // c + 1
print(ans)
sys.stdin.readline 쓸 필요 없음 (804ms에서 620ms까지 줄임)
형변환이 시간을 더 잡아먹는다는 것을 알게 되었다. 시간초과를 해결하기 위해 코드를 더 다듬고 고민하는 과정이 필요한 문제였다.