-
[프로그래머스] 기능 개발 (python)개발/알고리즘 2022. 9. 20. 21:28
https://school.programmers.co.kr/learn/courses/30/lessons/42586
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
맨 앞기능이 완성될 때까지 기다리다가, 완성되면, 배포할 수 있는 것들을 찾아서, 배포하는 방식으로 코딩.
처음에 문제를 잘 못읽어서, 비효율적인 방법으로 코드 작성
def solution(progresses, speeds): # 가장 앞 기능을 항상 가리키고 있다가, 앞 기능이 다 완성되면 배포를 시작 # 100%가 된 것들은 list에서 제외하고, 개수는 따로 세고 있기 -> 배포할 때 초기화 answer = [] # 배포할 것이 남은 시간동안 반복진행 while progresses: # 맨 앞 기능 다 되었으면 배포 if progresses[0] >= 100: over_100 = [] over_100_count = 0 # 전체 순회하며, 자신과 앞의 것이 모두 100 이상인 것들 찾기 i = 0 while i < len(progresses) and progresses[i] >= 100: over_100.append(i) over_100_count += 1 i += 1 # 자신 포함 앞의 것 모두 100이상인 것들 삭제하기 for i in range(len(over_100) - 1, -1, -1): index = over_100[i] del progresses[index] del speeds[index] answer.append(over_100_count) if progresses: for i in range(len(progresses)): progresses[i] += speeds[i] return answer'개발 > 알고리즘' 카테고리의 다른 글
[프로그래머스] 올바른 괄호 (python) (0) 2022.09.13 [백준] 2302 극장좌석 (python) (0) 2022.09.02 [백준] 16194 카드구매하기2 (python) (0) 2022.08.31 [프로그래머스] 124나라의숫자 (python) (0) 2022.08.30 [백준] 1406 에디터 (python) (0) 2022.08.29