Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- XML
- 오픽공부법
- topdown
- 오픽가격
- 바텀업
- 안드로이드
- English
- 메모이제이션
- dynamicProgramming
- 영어회화
- 오픽노잼공부방법
- 오픽노잼
- 이진탐색 #나무 자르기
- 주석
- stack 스택
- XML주석
- 디피
- fibo
- 이진탐색
- 다이나믹프로그래밍
- opic
- 탑다운
- ㅂ
- 오픽점수잘받는방법
- 영어말하기
- 피보나치수열
- 오픽
- dp
- 안드로이드주석
Archives
RUBY
[프로그래머스] 기능개발 본문
출처:: programmers.co.kr/learn/courses/30/lessons/42586
분류:: 스택
1. 문제 이해 및 해결과정
1. 스택
1. progresses의 길이 만큼 for문을 돈다 2. for문 돌면서 현재 인덱스의 소요일수를 저장한다 3. 만약 인덱스가 첫번째면 , 스택에 추가한다. 4. 인덱스가 첫번째가 아니면 , 스택의 첫번째 원소와 소요일수를 비교한다 4-1) stack[0]보다 현재 소요일수를 같거나 작다면, stack에 소요시간을 넣는다 4-2) stack[0]보다 현재 소요일수를 크다면, 1)res에 stack의 길이를 추가 2) 스택비운다 3) 현재 소요일 수 추가한다. |
2. 풀이방법
1. [ python ] 스택
import math
def solution(progresses, speeds):
stack=[] #배포가 가능한 기능
result=[]
for i in range(len(progresses)):
cur=math.ceil((100-progresses[i])/speeds[i])
if i==0: #첫번째 인덱스라면
stack.append(cur)
else: #첫번째 인덱스 아니라면
if stack[-1]>=cur: #stack의 첫번째원소 보다 현재 시간이 작다면
stack.append(cur)
else:
result.append(len(stack)) #결과에 stack의 길이 추가
stack.clear() #스택 비우기
stack.append(cur)
result.append(len(stack))
return result
2. [ python ] 큐
def solution(progresses, speeds):
result = []
while progresses:
cnt=0
progresses=[x+y for x,y in zip(progresses,speeds)] #93+1,30+30,55+5
while progresses and progresses[0]>=100: #현재 진행중인 기능이 100이 넘으면, 나머지 것들중 완성된 것도 같이 배포
progresses.pop(0) #배포한 기능제거
speeds.pop(0) #배포한 기능의 속도 제거
cnt+=1
if cnt!=0: #배포된 것이 1개이상이면
result.append(cnt)
return result
3. 오답원인
1. stack의 top과 cur을 비교한다고 생각했었는데, stack의 첫번째 들어온 원소보다 작은지 판단해야한다. 즉, stack[0]과 cur을 비교
4. 알게된 점
zip : 같은 개수로 이루어진 자료형을 묶어주는 역할을 하는 함수
list(zip([1,3,5],[2,4,6]))
#[(1,2),(3,4),(5,6)]
list(zip("xyz","pqr"))
#[('x','p'),('y','q'),('z','r')]
list(zip(progresses,speeds))
#[(93,1),(30,30),(55,5)]
'PS > Programmers' 카테고리의 다른 글
[프로그래머스] 삼각 달팽이 (0) | 2020.10.15 |
---|---|
[프로그래머스] 멀쩡한 사각형 (0) | 2020.10.15 |
[프로그래머스] 다리를 지나는 트럭 (0) | 2020.10.15 |
[프로그래머스] 스킬트리 (0) | 2020.10.14 |
[프로그래머스] 최대공약수와 최소공배수 (0) | 2020.10.14 |
Comments