일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 스프링
- 코딩교육봉사
- 회고
- 자바
- 시나공
- 백준알고리즘
- softeer
- MYSQL
- 소프티어
- 공부일지
- 백준
- 코딩봉사
- java
- BFS
- 코틀린
- 파이썬
- C++
- 백준 알고리즘
- 데이터베이스
- SQL
- 1과목
- 알고리즘
- 문제풀이
- programmers
- kotlin
- 정보처리산업기사
- 프로그래머스
- SW봉사
- CJ UNIT
- python
Archives
- Today
- Total
JIE0025
[프로그래머스] 스택/큐 _ 기능개발 (파이썬 level2) 본문
728x90
프로그래머스 스택 큐를 이용한 기능개발이라는 문제다.
https://programmers.co.kr/learn/challenges
테스트케이스 그림으로 확인 슈도코딩
1) 작업이 마감되기까지 몇일이 걸리나 계산 후 리스트에 할당
(어떤일의 남은 작업퍼센트)를 (하루에 개발가능한 퍼센트)로 나누었을때 나머지가 0이 아니면 하루를 더 추가하면 된다.
n = len(progresses)
#1_ 작업이 마감되기까지 몇일이 걸리나 계산.
finish_days = []
for i in range(n):
remain = 100 - progresses[i]
day = remain // speeds[i]
if remain % speeds[i] != 0:
day +=1
finish_days.append(day)
이과정을 끝내면 finish_days 라는 리스트는 [7,3,9] 가 된다.
2) now라는 변수에 첫번째 인덱스를 일단 저장 == 0
1부터 n까지 for문을 만든다.
>> finish_days[now] 가 7인데 이후에 이값보다 큰 값을 만나게 되면 그전까지의 것이 한꺼번에 배포가 된다는 뜻이다.
9를 만나면 i는 2일테고, now는 0인 상태이므로
i - now는 한번에 배포가 되는 수가 된다.
answer에 append해주고,
now = i 를 통해 다시 체크할 수 있도록 한다.
마지막 배포의 경우 더 큰값을 만날 수 없으므로
for문을 탈출한 이후에
전체 기능의 개수 n - now를 해서 마지막에 append해준다.
#2_ 인덱스로 접근
now = 0
answer = []
for i in range(1,n):
if finish_days[i] > finish_days[now]:
answer.append(i - now)
now = i
answer.append(n-now)
return answer
전체 코드
def solution(progresses, speeds):
n = len(progresses)
#1_ 작업이 마감되기까지 몇일이 걸리나 계산.
finish_days = []
for i in range(n):
remain = 100 - progresses[i]
day = remain // speeds[i]
if remain % speeds[i] != 0:
day +=1
finish_days.append(day)
#2_ 인덱스로 접근
now = 0
answer = []
for i in range(1,n):
if finish_days[i] > finish_days[now]:
answer.append(i - now)
now = i
answer.append(n-now)
return answer
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 그래프 _ 가장 먼 노드 (파이썬, level3) (0) | 2022.05.27 |
---|---|
[프로그래머스] 이분탐색 _ 입국심사 (파이썬, level3) (0) | 2022.05.27 |
[프로그래머스] 숫자 문자열과 영단어 (0) | 2022.05.07 |
[프로그래머스] 완전탐색 - 모의고사 파이썬 (0) | 2022.05.07 |
[프로그래머스] SQL 입양시각 구하기 - GROUP BY, 변수 (0) | 2022.03.02 |