Computer Engineering/알고리즘 테스트

프로그래머스 코딩테스트 문제: 주식가격

말하는호구마 2020. 3. 4. 22:20

level2 주식가격 문제를 풀어보았다.

출처: https://programmers.co.kr/learn/courses/30/lessons/42584

 

스택/큐 에 대한 문제를 풀면서 느끼는 것인데,

스택/큐에 대한 문제는 문제를 완벽히 이해하고 식만 세우면 구현하는 것은 크게 어렵지는 않은 것 같다!

 

 

 

 

 

결론을 먼저 보자면 나의 코드는 이러하다.

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를 걸어주어 쓸모없는 반복을 만들지 말자.