반응형
250x250
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 |
Tags
- 패스트캠퍼스
- 직장인인강
- 한번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online.
- SKT
- 패스트캠퍼스후기
- 한번에끝내는Java/Spring웹개발마스터초격차패키지
- 알버트
- AI
- albert
- R
- 한번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지
- 패캠챌린지
- 직장인자기계발
- 한번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online
Archives
- Today
- Total
제주 탈출 일지
[python3] 프로그래머스 레벨 2 - 주식가격 본문
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/42584?language=python3
코딩테스트 연습 - 주식가격
초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00
programmers.co.kr
# 최종 답안
def solution(prices):
answer = [0] * len(prices)
stack = []
timeLine = {}
time = len(prices)
for i in enumerate(prices):
stack.append(i)
for i in range(len(stack)):
tmp = []
for j in range(i, len(stack)):
if stack[i][1] > stack[j][1] :
tmp.append(j)
break
timeLine.setdefault(i,tmp)
for i in range(len(stack)):
# 가격이 떨어진 것이 있다면?
if timeLine[i] != [] :
answer[stack[i][0]] = timeLine[i][0] - i
# 마지막 원소는 떨어지지 않았음.
elif i == len(stack) - 1:
answer[stack[i][0]] = 0
# 가격이 떨어지지 않았다면?
else : answer[stack[i][0]] = time - stack[i][0] - 1
return answer
1. 첫번째 for문으로 (index, value)로 이루어진 prices를 구함..
2. 이 stack을 이용해서 특정 인덱스 이후에 값이 떨어지는 지 체크하는데, 한번까지만 체크하면 되므로 만약 떨어지는 값이 있다면 바로 break
3. 모든 인덱스에 대해서 떨어지는지 떨어지지 않는지 확인했으니, 경우의 수에 따라 답안을 구함.
- 가격이 떨어진 것이 있는가 ?
timeLine 딕셔너리의 값과 index의 차로 answer를 설정
- 마지막 원소인가?
마지막원소는 떨어질 가격이 없으므로 0
- 가격이 떨어지지 않았다면?
len(prices) - 인덱스 - 1( 이때, -1 해주는 이유는 1번째부터 시작하는데 인덱스는 0부터 시작하기 때문, 1을 더 빼줘야 함.)
다른 사람의 풀이
1. 리스트를 끝에서부터 반복시키고 싶을 때 for i in stack[::-1] 과 같은 형태로 사용.
728x90
반응형
'코딩 테스트' 카테고리의 다른 글
[python3] 프로그래머스 레벨 2 - H-Index (0) | 2021.06.20 |
---|---|
[python3] 프로그래머스 레벨 2 - 프린터 (0) | 2021.06.17 |
[python3] 프로그래머스 레벨 2 - 기능개발 (0) | 2021.06.17 |
[python3] 프로그래머스 레벨 2 - 카펫 (0) | 2021.06.15 |
[python3] 프로그래머스 레벨 2 - 소수 찾기 (0) | 2021.06.15 |
Comments