문제
https://school.programmers.co.kr/learn/courses/30/lessons/42584
설계
처음에 문제를 잘 못 이해했었다. 기록된 가격보다 떨어지지 않은 경우가 총 몇초인지를 반환하는 줄 알았는데, 한 번이라도 가격이 떨어지면 끝이다.
자바스크립트
function solution(prices) {
let answer = [];
for (let i = 0; i < prices.length; i++) {
let second = 0
for (let j = i + 1; j < prices.length; j++) {
second += 1 // 다음 단위와 비교시 1초가 지나기 때문에 무조건 1을 더하고 확인한다.
if (prices[i] <= prices[j]) {
continue
} else {
break
}
}
answer.push(second)
}
return answer;
}
파이썬
- 2중 for문으로 가격이 떨어지는지 확인
- 가격이 떨어진다면 break & bucket에 값 더하기
def solution(prices):
N = len(prices)
bucket = [0] * N
for i in range(N):
cnt = 0
for j in range(i+1, N):
cnt += 1
if prices[i] > prices[j]:
break
bucket[i] += cnt
return bucket
'PS (Problem Solving) > Programmers' 카테고리의 다른 글
[프로그래머스] 귤 고르기 (0) | 2022.12.11 |
---|---|
[프로그래머스] 모음 사전 (0) | 2022.12.10 |
[프로그래머스] 프린터 (0) | 2022.11.22 |
[프로그래머스] 멀리 뛰기 (0) | 2022.11.10 |
[프로그래머스] 점프와 순간이동 (0) | 2022.11.09 |