Algorithm
[프로그래머스] 기능개발
Sehe_e
2023. 8. 29. 23:31
사용 입출력 예제
progresses = [93, 30, 55]
speeds = [1, 30, 5]
result = [2, 1]
1)
정확성테스트
더보기
테스트 1 〉 | 통과 (0.01ms, 10.2MB) |
테스트 2 〉 | 통과 (0.04ms, 10.1MB) |
테스트 3 〉 | 통과 (0.03ms, 10.3MB) |
테스트 4 〉 | 통과 (0.03ms, 10.2MB) |
테스트 5 〉 | 통과 (0.01ms, 10.1MB) |
테스트 6 〉 | 통과 (0.01ms, 10.2MB) |
테스트 7 〉 | 통과 (0.03ms, 10.3MB) |
테스트 8 〉 | 통과 (0.01ms, 10.2MB) |
테스트 9 〉 | 통과 (0.02ms, 10.3MB) |
테스트 10 〉 | 통과 (0.02ms, 10.3MB) |
테스트 11 〉 | 통과 (0.01ms, 10.1MB) |
# 1)
def solution(progresses, speeds):
done = [100 - i for i in progresses]
done_ = []
for i, n in enumerate(speeds):
done_.append(done[i] // n)
if done[i] % n != 0:
done_[i] += 1
count = 1
oneDay = done_[0]
answer = []
for j, i in enumerate(done_):
if j == 0:
oneDay = i
elif oneDay < i:
oneDay = i
answer.append(count)
count = 1
elif oneDay >= i:
count += 1
answer.append(count)
return answer
2) Refactoring
정확성 테스트
더보기
테스트 1 〉 | 통과 (0.01ms, 10.3MB) |
테스트 2 〉 | 통과 (0.05ms, 10.1MB) |
테스트 3 〉 | 통과 (0.03ms, 10.2MB) |
테스트 4 〉 | 통과 (0.01ms, 10.2MB) |
테스트 5 〉 | 통과 (0.01ms, 10.4MB) |
테스트 6 〉 | 통과 (0.01ms, 10.1MB) |
테스트 7 〉 | 통과 (0.03ms, 10MB) |
테스트 8 〉 | 통과 (0.01ms, 10.2MB) |
테스트 9 〉 | 통과 (0.02ms, 10.3MB) |
테스트 10 〉 | 통과 (0.03ms, 10.2MB) |
테스트 11 〉 | 통과 (0.01ms, 10.3MB) |
def solution(progresses, speeds):
# 1)
# done = [100 - i for i in progresses]
# done_ = []
# for i, n in enumerate(speeds):
# done_.append(done[i] // n)
# if done[i] % n != 0:
# done_[i] += 1
done = []
for i, n in enumerate(progresses):
work = 100 - n
done.append(work // speeds[i])
if work % speeds[i] != 0:
done[i] += 1
...
return answer
3) Refactoring
정확성 테스트
더보기
테스트 1 〉 | 통과 (0.01ms, 10.1MB) |
테스트 2 〉 | 통과 (0.03ms, 10.2MB) |
테스트 3 〉 | 통과 (0.02ms, 10.3MB) |
테스트 4 〉 | 통과 (0.01ms, 10.1MB) |
테스트 5 〉 | 통과 (0.01ms, 10MB) |
테스트 6 〉 | 통과 (0.01ms, 10.1MB) |
테스트 7 〉 | 통과 (0.02ms, 10.2MB) |
테스트 8 〉 | 통과 (0.01ms, 10.3MB) |
테스트 9 〉 | 통과 (0.02ms, 10.1MB) |
테스트 10 〉 | 통과 (0.02ms, 10.2MB) |
테스트 11 〉 | 통과 (0.01ms, 10.2MB) |
def solution(progresses, speeds):
# 2)
# done = []
# for i, n in enumerate(progresses):
# work = 100 - n
# done.append(work // speeds[i])
# if work % speeds[i] != 0:
# done[i] += 1
done = []
for i, n in enumerate(progresses):
work = 100 - n
if work % speeds[i] != 0:
done.append(work // speeds[i] + 1)
else:
done.append(work // speeds[i])
...
return answer
4) Refactoring
정확성 테스트
더보기
테스트 1 〉 | 통과 (0.01ms, 10.2MB) |
테스트 2 〉 | 통과 (0.03ms, 10.2MB) |
테스트 3 〉 | 통과 (0.02ms, 10.1MB) |
테스트 4 〉 | 통과 (0.01ms, 10.1MB) |
테스트 5 〉 | 통과 (0.00ms, 9.96MB) |
테스트 6 〉 | 통과 (0.01ms, 10.3MB) |
테스트 7 〉 | 통과 (0.02ms, 10.1MB) |
테스트 8 〉 | 통과 (0.01ms, 10.2MB) |
테스트 9 〉 | 통과 (0.02ms, 10.1MB) |
테스트 10 〉 | 통과 (0.02ms, 10MB) |
테스트 11 〉 | 통과 (0.00ms, 10MB) |
def solution(progresses, speeds):
answer = []
count = 1
done = 0
for i, n in enumerate(progresses):
work = 100 - n
if i == 0:
if work % speeds[i] != 0:
done = work // speeds[i] + 1
else:
done = work // speeds[i]
else:
if work % speeds[i] != 0:
done_ = work // speeds[i] + 1
else:
done_ = work // speeds[i]
if done < done_:
done = done_
answer.append(count)
count = 1
elif done >= done_:
count += 1
answer.append(count)
return answer