티스토리 뷰
이해도
★★★★☆
접근방법
- 빈 배열 만들고, 완성까지 소요되는 날짜를 구한다.
- 소요 날짜를 비교하면서 더 적게 걸리면 이전에 더 오래걸리는 날짜로 바꾸어주고 진행, 스피드 배열에서 앞에서부터 하나씩 요소를 빼준다.
- 날짜배열이 나오면 Counter 함수를 사용하여 같은 day가 몇 번 나왔는지 리스트로 만든다.
from collections import Counter
def solution(progresses, speeds):
days = []
while progresses:
day = 0
while progresses[0] < 100:
progresses[0] += speeds[0]
day += 1
if days and day < days[-1]:
day = days[-1]
days.append(day)
progresses.pop(0)
speeds.pop(0)
else:
days.append(day)
progresses.pop(0)
speeds.pop(0)
cnt = Counter()
for day in days:
cnt[day] += 1
return list(cnt.values())
print(solution([93, 30, 55],[1, 30, 5]))
print(solution([95, 90, 99, 99, 80, 99], [1, 1, 1, 1, 1, 1]))
다른 풀이
- time 변수를 활용한 방법이라고 한다.
- 설명 추가 예정
def solution(progresses, speeds):
answer = []
time = 0
count = 0
while progresses:
if (progresses[0] + time * speeds[0]) >= 100:
progresses.pop(0)
speeds.pop(0)
count += 1
else:
if count > 0:
answer.append(count)
count = 0
time += 1
answer.append(count)
return answer
print(solution([93, 30, 55],[1, 30, 5]))
'Coding Test' 카테고리의 다른 글
[Jungol] 1307. 문자사각형 (0) | 2021.12.03 |
---|---|
[Jungol] 1291. 구구단 (0) | 2021.12.02 |
[Programmers][완전탐색] 소수찾기 (211113) (0) | 2021.11.13 |
2021 카페24 개발자 채용 챌린지(211023) (0) | 2021.10.23 |
[Programmers] DEV MATCHING (211016) (0) | 2021.10.16 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 싸피
- 개발자커리
- 개발언어추천
- 싸피6기
- 깃허브계정2개
- 코딩도서
- SSAFY
- 디즈니얼굴
- 무료폰트추천
- 한글무료폰트추천
- 브왈라
- 클린코더
- 폰트추천
- intj여자
- ssafy6기
- ssafy후기
- 폰트
- 깃허브계정
- 개발언어순위
- 개발자로드맵
- 임대차3법
- 개발자
- ssafy결과
- 개발자책추천
- 맥과윈도우로깃허브
- 개발자도서추천
- 클린코드
- 상업용무료폰트
- 개발도서추천
- ssafy합격후기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함