1. 문제 링크
2. 문제 조건
초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.
제한사항
prices의 각 가격은 1 이상 10,000 이하인 자연수입니다.
prices의 길이는 2 이상 100,000 이하입니다.
3. 컴퓨팅 사고
- 스택으로 진행하는 방법도 있고, 배열로 진행하여도됩니다. 해당 풀이는 배열을 사용하였습니다.
- prices배열에 담긴 값들이 초 단위로 기록되었을때 가격이
몇초간 떨어지지않았는지
를 구하는 문제였습니다. - 순수히 배열로만 사용하여 현재 가격과 그 이후에 일어날 시간의 값들을 비교해주었습니다. 현재의 가격이 뒤에 진행될 가격보다 크게 될 경우
뒤에 진행된 시간- 현재의 시간
으로 계산하여 해당 조건들을 빠져나오게됩니다. 필요한값은 떨어지는 시점 즉, 현재의 가격보다 낮은값이 나왔을때 해당 조건을 벗어나게 됩니다. - 처음에 주식가격보다 클경우 cnt값을 증가시켜서 arr배열에 담아주었는데, 정확도 면에서 틀린부분이 있었습니다. 기존의 실행은 통과하였으나 다른 테스트케이스를 통과를 하지 못했습니다. 제가 생각하지못한 예외가 있었을것이라고 생각이드는데, 바로 다른방식으로 진행하여
다음에 일어날 시간 - 현재 시간
의 조건을 가지고 진행하였습니다.
4. 소스 코드
잘못생각하였던 풀이
1 | public class 주식가격 { |
올바른 풀이
1 | public class 주식가격 { |