level2 주식가격 문제를 풀어보았다.
스택/큐 에 대한 문제를 풀면서 느끼는 것인데,
스택/큐에 대한 문제는 문제를 완벽히 이해하고 식만 세우면 구현하는 것은 크게 어렵지는 않은 것 같다!
결론을 먼저 보자면 나의 코드는 이러하다.
class Solution {
public int[] solution(int[] prices) {
int[] answer = new int[prices.length];
for(int i=0;i<prices.length-1;i++) {
for(int j=i+1;j<prices.length;j++) {
if(prices[i]>prices[j]) {
answer[i]=j-i;
break;
}
}
if(answer[i]==0)
answer[i]=prices.length-(i+1);
}
return answer;
}
}
위와 같은 정답코드를 만들기까지 두번의 실수가 있었다....
첫번째는
→출력의 실수...
정말 멍청한 실수였다. eclipse에 실행시켜 보고싶어서 콘솔창에 찍는 과정에서 새로만든 배열이 아닌 배열의 length만 계속 찍고 있었다...
너무 자연스러워서 실수한줄도 모르고 계속 오류를 찾고있었다.....
두번째는
→break
나는 for문을 돌릴때면 break를 자주 안쓰곤한다. 그동안 break문을 안써서 크게 문제되는 부분은 없었기 때문에 그중요성을 몰랐었다.
하지만 이번문제 제출을 하며 자꾸 테스트 시간이 오바되어 실패했다.
이 break문제였다.
필요한 조건을 찾아 더이상 반복이 필요 없을때는 꼭 break를 걸어주어 쓸모없는 반복을 만들지 말자.
'Computer Engineering > 알고리즘 테스트' 카테고리의 다른 글
프로그래머스 코딩테스트 문제: K번째수 (0) | 2020.03.06 |
---|---|
프로그래머스 코딩테스트 문제: 완주하지 못한 선수 (0) | 2020.03.06 |
프로그래머스 코딩테스트 문제: 폰켓몬 (0) | 2020.03.05 |
프로그래머스 코딩테스트 문제: 제일 작은 수 제거하기 (0) | 2020.03.04 |
프로그래머스 코딩테스트 문제: 탑 (0) | 2020.02.09 |