반응형
주식가격
문제 설명
초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.
예시
prices | return |
[1, 2, 3, 2, 3] | [4, 3, 1, 1, 0] |
코드 해석 및 전체 코드
예시 입출력 설명
- 1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았습니다.
- 2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았습니다.
- 3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다.
- 4초 시점의 ₩2은 1초간 가격이 떨어지지 않았습니다.
- 5초 시점의 ₩3은 0초간 가격이 떨어지지 않았습니다.
1. 반환할 배열을 prices의 길이만큼 선언
2. 이중 for문을 반복하는데, 바깥쪽 for문은 prices의 길이만큼
3. 안쪽 for문은 i + 1 ~ prices의 길이만큼 반복
현재 초부터 다음 초의 값들을 비교하기에 i + 1부터 비교하게 된다.
4. answer[i]에 1 증가
예시 입출력 설명에서 3초 때, 1초간 가격이 떨어지지 않은 것으로 본다고 해
조건 비교하지 않고 바로 answer[i]에 1 증가시킨다.
5. prices[i]의 다음 요소들 중에서 작은 값을 만나면 안쪽 for문을 종료시킴
class Solution {
public int[] solution(int[] prices) {
int[] answer = new int[prices.length];
for (int i = 0; i < prices.length; i++) {
for (int j = i + 1; j < prices.length; j++) {
answer[i]++;
if (prices[i] > prices[j])
break;
}
}
return answer;
}
}
반응형
'코딩 테스트 > [JAVA] programmers 코딩 테스트 연습' 카테고리의 다른 글
[Programmers/JAVA] 영어 끝말잇기 / 프로그래머스 코딩 테스트 연습 (0) | 2022.06.27 |
---|---|
[Programmers/JAVA] 없는 숫자 더하기 / 프로그래머스 코딩 테스트 연습 (0) | 2022.06.27 |
[Programmers/JAVA] 큰 수 만들기 / 프로그래머스 코딩 테스트 연습 (0) | 2022.01.03 |
[Programmers/JAVA] 전화번호 목록 / 프로그래머스 코딩 테스트 연습 (0) | 2022.01.02 |
[Programmers/JAVA] 구명보트 / 프로그래머스 코딩 테스트 연습 (0) | 2022.01.01 |
댓글