반응형
    
    
    
  문제 설명
초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
나의 풀이 (java)
import java.util.ArrayList;
import java.util.List;
public class StockPrices {
    public static void main(String[] args) {
        int[] arr = {1,2,3,2,3};
        solution(arr);
    }
    public static int[] solution(int[] prices) {
        List<Integer> secondsArr = new ArrayList<>();
        for (int i = 0; i < prices.length; i++) {
            int seconds = 0;
            for (int j = i; j < prices.length; j++) {
                if (prices[i] > prices[j] || j == prices.length-1) {
                    secondsArr.add(seconds);
                    break;
                }else{
                    seconds ++;
                }
            }
        }
        return secondsArr.stream().mapToInt(Integer::intValue).toArray();
    }
}
풀이 방법
특별히 어려운 로직은 없고, 스택/큐의 문제임을 무시하고, 이중 for문으로 해결 가능
- List -> Array
list.stream().mapToInt(Integer::intValue).toArray(); 
다른사람의 풀이 (java)
class Solution {
    public int[] solution(int[] prices) {
        int len = prices.length;
        int[] answer = new int[len];
        int i, j;
        for (i = 0; i < len; i++) {
            for (j = i + 1; j < len; j++) {
                answer[i]++;
                if (prices[i] > prices[j])
                    break;
            }
        }
        return answer;
    }
}
Godd Idea : 거의 비슷. seconds 변수를 사용하지 않고 바로 index로 접근해서 카운트하고, 조건문이 조금 다른게 차이
느낀점
- 스택/큐를 사용하지 않는대신, 아래 2가지 방법을 사용 가능
- temp 변수에 이전 값 or 이전까지의 특정값(최대값 등)을 저장해서 비교/처리 가능
 - 이중 for문 등을 사용하되, list의 index로 값에 직접 접근 : arr[i]++;
 
 - 물론 코드 짜고, 정리하지 않아 지저분한걸 감안해도, 코드가
가독성이 떨어지고,
그렇다고 재사용성이 좋지도 않고,
아이디어가 좋은 것도 아니고,
그냥 문제를 푼 느낌이 없지 않아 있다 - 하지만, 코드를 직독직해 하듯이 풀었기에, 초보자가 보기에는 오히려 편할수도?!
 
반응형
    
    
    
  '개발 > 코딩 테스트' 카테고리의 다른 글
| [알고리즘] 프로그래머스 > 해시 > 위장 (0) | 2022.08.05 | 
|---|---|
| [알고리즘] 프로그래머스 > 해시 > 전화번호 목록 (0) | 2022.08.04 | 
| [알고리즘] 프로그래머스 > 스택/큐 > 같은 숫자는 싫어 (0) | 2022.08.01 | 
| [알고리즘] 프로그래머스 > 정렬 > 가장 큰 수 (0) | 2022.07.27 | 
| [알고리즘] 프로그래머스 > 정렬 > 가장 큰 수 (1) | 2022.07.24 |