programmers.co.kr/learn/courses/30/lessons/42584?language=python3
코딩테스트 연습 - 주식가격
초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00
programmers.co.kr
< problem >
초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.
< constraint >
- prices의 각 가격은 1 이상 10,000 이하인 자연수입니다.
- prices의 길이는 2 이상 100,000 이하입니다.
< example >

- 1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았습니다.
- 2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았습니다.
- 3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다.
- 4초 시점의 ₩2은 1초간 가격이 떨어지지 않았습니다.
- 5초 시점의 ₩3은 0초간 가격이 떨어지지 않았습니다.
< solution ① > deque 활용
- import deque
- prices 배열을 deque 통해 새로운 덱 생성해줌
- while deque배열:
- 가장 왼쪽 값을 하나씩 pop 하여 모든 값과 비교 후 떨어지면 break
- timeCount 변수 값을 answer 배열에 append
- return answer[]
ⓒ ⓞ ⓓ ⓔ

ⓣ ⓔ ⓢ ⓣ

< solution ② > 배열 이용
- 바로 while문 : while prices:
- price = pop한 값, timeCount = 0
- for문 통해 나머지 prices 값과 비교하여 떨어지면 break
- return answer
ⓒ ⓞ ⓓ ⓔ

ⓣ ⓔ ⓢ ⓣ

ⓕ ⓘ ⓝ ⓐ ⓛ ⓒ ⓞ ⓓ ⓔ

ⓒ ⓞ ⓜ ⓜ ⓔ ⓝ ⓣ
이번에는 스택보다 덱 먼저 활용해보았는데,
스택 사용한 경우 정확성은 통과했지만,
효율성은 시간 초과로 모두 실패함
'Python ◡̈ > 차근차근 Python' 카테고리의 다른 글
[programmers] python DFS_BFS 타겟넘버 (0) | 2021.04.07 |
---|---|
[programmers] python DFS/BFS 네트워크 (0) | 2021.04.07 |
[programmers] python 스택/큐 stack/queue 프린터 (0) | 2021.03.31 |
[programmers] python 완전탐색 카펫 (0) | 2021.03.24 |
[백준 2576번] 홀수 (0) | 2021.03.24 |