728x90
반응형

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

코딩테스트 연습 - 주식가격

solution.c 1 #include <stdio.h> 2 #include <stdbool.h> 3 #include <stdlib.h> 4 ​ 5 // prices_len은 배열 prices의 길이입니다. 6 int* solution ( int prices [], size_t prices_len ) { 7 // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요. 8 int* answer = ( int* ) malloc ( 1 ); 9 return answer ; 10 } 실행 결과 ...

programmers.co.kr

문제 설명

초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.

제한사항

prices의 각 가격은 1 이상 10,000 이하인 자연수입니다.

prices의 길이는 2 이상 100,000 이하입니다.

입출력 예

prices

return

[1, 2, 3, 2, 3]

[4, 3, 1, 1, 0]

비교적 빠른 시간 안에 아이디어를 잡고 구현까지 성공했다.

큐/스택 카테고리에 들어가있던 문제이지만 큐, 스택과는 관계없이 대소관계를 비교하며

이중 반복문으로 풀 수 있었다.

def solution(prices):
    answer = []
    for i in range(len(prices)):
        cnt = 0
        for j in range(i+1, len(prices)):
            cnt +=1
            if prices[i] > prices[j] :
                break
        answer.append(cnt)
    return answer

큐와 스택을 이용해서 푸는 풀이는 없나하고 다른 사람의 문제 풀이를 참조해봤지만

돌아가는 구조 자체는 위와 크게 다르지 않았다.

prices를 deque() 를 이용해서 덱으로 만든 다음 popleft 를 이용해 맨 왼쪽 값을 빼내는 것 정도.

큐/스택은 문제풀이에서 능수능란하게 다루기 어려운 것 같다.

728x90
반응형

+ Recent posts