프로그래머스 기능개발(42586) 문제 풀의 및 구현방법을 남긴다.
stack 문제인데 이전에는 직접 스택 자료구조를 만들어서 문제를 풀었다고 하면 이번 문제는 python으로 stack을 유사하게 구현했다.
0. 추가 모듈
- math : 올림 함수(math.ceil) 사용을 위함
1. 리스트 목록
- progresses : 배포 진행률N < 100)
- speeds : 개발 속도(N < 100)
2. 추가 리스트
- periods : 배포 완료되는 날짜
- int(math.ceil(float((100 - 배포진행률)) / float(배포속도)))
3. 구현 방법
- list 만 사용
- top 초기값 -> periods[0] 으로 두고 for 문으로 progresses 배열 순차 탐색하여, top이 periods[i] 값보다 작을 때 top 변경
쉬운 문제인데 stack 자료구조를 꼭 사용해야한다! 고 생각하고 풀다보니 꼬여서 시간이 좀 걸렸다.
import math
def solution(progresses, speeds):
answer = []
periods = []
cnt = 0
top = 0
for i in range(len(progresses)):
periods.append(int(math.ceil(float(100 - progresses[i])/float(speeds[i]))))
if(i == 0 ) : top = periods[0]
if top < periods[i] :
answer.append(cnt)
top = periods[i]
cnt = 0
cnt += 1
answer.append(cnt)
return answer
'역량강화 > 코딩테스트' 카테고리의 다른 글
[PATHFINDER] 카카오브레인 패스파인더 코딩테스트 후기(패스파인더 1기) (0) | 2021.11.24 |
---|---|
[우테코4기] 우테코 1차 코테 후기(우아한테크코스, 코딩테스트) (0) | 2021.11.06 |
[DFS/재귀] 프로그래머스 - 타겟 넘버(43165) (0) | 2021.11.06 |
[스택/큐] 프로그래머스 - 네트워크(43162) (0) | 2021.11.06 |
코딩테스트 준비 사이트와 문제유형 (0) | 2021.09.04 |
댓글