[프로그래머스] 주식 가격 | kotlin

2025. 2. 4. 19:25·학습 기록/문제풀이
반응형

문제 설명

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

 

제한사항
prices의 각 가격은 1 이상 10,000 이하인 자연수입니다.
prices의 길이는 2 이상 100,000 이하입니다.


풀이

인덱스 차이를 이용하여 초를 계산하기 위해 스택에 인덱스를 넣는 방식으로 구현했다.

주어진 배열을 순회하며

  • 스택에 인덱스를 push한다.
  • 만약 현재 주식가격이 스택의 top과 대응하는 주식가격보다 작다면 가격이 떨어진 것
    • 스택에서 pop한 인덱스와 현재 인덱스의 차이(= 초)를 answer 배열에 저장한다.
  • 배열을 순회 한 후 stack에 남아있는 값들은 끝까지 가격이 떨어지지 않은 것
    • 배열의 마지막 인덱스와 스택에서 pop한 인덱스의 차이를 answer배열에 저장한다.
fun main() {
    val sol = Solution()
    sol.solution(intArrayOf(1, 2, 3, 2, 3))
}

class Solution {
    fun solution(prices: IntArray): IntArray {
        val answer = IntArray(prices.size)
        val stack = ArrayDeque<Int>()

        for (i in prices.indices) {
            while (stack.isNotEmpty() && prices[i] < prices[stack.last()]) {
                val topIndex = stack.removeLast()
                answer[topIndex] = i - topIndex
            }
            stack.addLast(i)
        }
        val lastIndex = prices.size-1
        while (stack.isNotEmpty()) {
            val topIndex = stack.removeLast()
            answer[topIndex] = lastIndex - topIndex
        }
        return answer
    }
}

 

문제 링크

반응형

'학습 기록 > 문제풀이' 카테고리의 다른 글

[백준 2480] 주사위 세개 | Java  (1) 2025.03.25
[프로그래머스] N으로 표현 | kotlin  (2) 2025.03.19
[소프티어] 장애물 인식 프로그램 | kotlin  (0) 2025.02.04
[소프티어] 함께하는 효도 | kotlin  (0) 2025.02.04
[소프티어] 나무섭지 | kotlin  (0) 2025.02.02
'학습 기록/문제풀이' 카테고리의 다른 글
  • [백준 2480] 주사위 세개 | Java
  • [프로그래머스] N으로 표현 | kotlin
  • [소프티어] 장애물 인식 프로그램 | kotlin
  • [소프티어] 함께하는 효도 | kotlin
BaekCCI
BaekCCI
  • BaekCCI
    BaekLog
    BaekCCI
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 학습 기록
        • 안드로이드
        • 문제풀이
        • kotlin
      • 우아한 테크코스
      • 백씨의 하루
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    우아한테크코스
    Java
    알고리즘
    softeer
    Android
    백준
    코틀린
    프로그래머스
    Algorithm
    Kotlin
    i/o extended android
    소프티어
    우테코
    gdg korea
    androiddeveloper
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.6
BaekCCI
[프로그래머스] 주식 가격 | kotlin
상단으로

티스토리툴바