반응형
오늘의 문제. 프로그래머스 플랫폼 문제다. 오랜만에 한글 보니까 넘 반갑..
초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.
제한사항
1. prices의 각 가격은 1 이상 10,000 이하인 자연수입니다.
2. prices의 길이는 2 이상 100,000 이하입니다.
의식의 흐름은 맞았는데 코드로 풀어내는데서 한 군데 함정에 빠졌다. 그래도 으쨌든 30분 안에 풀어내긴 했음. 아이고 아슬아슬해라.
가격이 떨어진 시점에서 빠져나가기 전에 어쨌든 sec을 1만큼 더해줘야 하는데 그냥 빠져나가거나 sec=1이라고 명시해버리고 빠져나갈라니까 거기서 자꾸 걸렸다. 테스트케이스 1만 통과하고 나머지는 실패한 빨강 라인이 우수수...
class cote0322_JusikGagyeok{
public int[] solution(int[] prices) {
/*
~ 의식의 흐름 ~
나와 내 이후 값들을 비교해서
나와 같거나 크면 떨어지지 않은 것이고
나보다 작으면 떨어진 시점이다
거기까지의 second를 카운트해서 배열에 담자
*/
int[] answer = new int[prices.length];
for(int i=0; i<prices.length; i++){
int sec=0; //초기화 시켜주기
int price=prices[i]; //비교해야 할 기준값 넣어주기
for(int j=i+1; j<prices.length; j++){ //다음것부터 끝까지 비교해야 함
if(price <= prices[j]){ //가격이 같거나 올랐으면 sec을 더해준다
sec++;
}else{ //가격이 떨어졌으면 sec에 1만 더해주고 for문을 빠져나간다...
sec++;
break;
}
}
answer[i] = sec; //연산이 끝나면 answer배열에 sec값을 넣어준다
}
return answer;
}
}
코딩테스트 문제 풀때마다 의식의 흐름대로 코드 작성해서 돌렸는데 성공하면 짜릿하다.
728x90
반응형
'TIL > Coding Test' 카테고리의 다른 글
[프로그래머스] 오픈채팅방 (4) | 2021.03.24 |
---|---|
[프로그래머스] 카펫 (0) | 2021.03.23 |
[LeetCode] Majority Element (0) | 2021.03.20 |
[LeetCode] Lemonade Change (4) | 2021.03.17 |
[LeetCode] Two Sum (0) | 2021.03.16 |