일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 프로그래머스
- D3
- Matrix Factorization
- 대학원
- 안드로이드스튜디오
- level3
- Github
- java
- androidstudio
- build
- LEVEL2
- Python
- SWEA
- BFS
- 컨트리뷰톤
- 다시풀기
- level1
- 어렵다
- 내휴학생활중의아주큰일
- git
- WebOS
- 대학원일기
- MSBuild
- 휴학
- 컴퓨터비전
- SQL
- level4
- 파이썬
- 자바
- py
Archives
- Today
- Total
bit가 눈 앞에서 왔다갔다
프로그래머스) 42586 본문
# from collections import deque
import math
progresses = [40, 93, 30, 55, 60, 65]
speeds = [60, 1, 30, 5, 10, 7]
# date = [ 1, / 7, 3, / 9, 4, 5 ]
def solution(progresses, speeds):
answer = []
# answer = [0 for i in range(100)]
date = [] # 배포일
max = flag = 0
for _ in range(len(progresses)):
date.append(math.ceil((100 - progresses.pop(0)) / speeds.pop(0)))
# 1차
# for _ in range(len(date)):
# tmp = date.pop(0)
# if answer[0] == 0:
# answer[0] = 1
# max = tmp
# flag = 0
# else:
# if tmp <= max:
# answer[flag] += 1
# elif tmp > max:
# flag += 1
# answer[flag] += 1
# max = tmp
# 2차
# tmp = date[0]
# for i in date:
# if tmp < i:
# flag += 1
# tmp = i
# answer[flag] += 1
# 3차
tmp = date[0]
cnt = 0
for i in date:
if tmp >= i:
cnt += 1
else:
answer.append(cnt)
tmp = i
cnt = 1
answer.append(cnt)
# return answer[0:flag + 1]
return answer
print(solution(progresses, speeds))
1차 시도로 맞췄는데
더 짧은 코드가 있는 걸 보고 나름대로 다시 생각하고 다시 생각하고 해서 3번 고쳐봤다.
1,2차 때 실행 시간이 대부분 비슷하거나 동일하게 나왔는데
3차로 고친 코드는 실행시간이 좀 들쭉날쭉하게 나옴
3차를 좀 더 효율적으로 고친다면 이렇게 될 것 같다.
cnt = 0
p = date[0]
for i in range(len(date)):
if p < date[i]:
answer.append(cnt)
p = date[i]
cnt = 0
cnt += 1
answer.append(cnt)
얼마 전 bfs dfs 하다가 힘들어서 그냥 프로그래머스에서 다른 유형 1, 2단계 수준 정도를 풀어보고 있다.
리프레쉬되는 느낌이 있다 ㅇㅇ
안 어려우니까 스트레스도 안 받고 자괴감도 안 들고
피곤하다 자야겠담
반응형
'Algorithm > Prob' 카테고리의 다른 글
Py) 프로그래머스 49189 (0) | 2021.12.31 |
---|---|
Py) 프로그래머스 42839 (0) | 2021.12.28 |
프로그래머스) 42748 (0) | 2021.09.02 |
이코테_BFS, DFS) Q19 연산자 끼워 넣기 (2) | 2021.08.19 |
7576 토마토 - 방법1 (0) | 2019.11.16 |
Comments