[LeetCode] 2375. Construct Smallest Number From DI String (Python)

2025. 2. 18. 21:17·코딩 테스트
728x90

Problem

 

Solution

stack
brute force

I 가 나오면 숫자 증가,D 가 나오면 숫자가 감소하도록하여 가장 작은 수를 반환하는 문제.

지난번 비슷한 문제에서 dfs 를 사용했어서 비슷하게 풀면되는 줄 알고 삽질함

 

사전적으로 가장 작은 숫자를 반환해야하므로 가장 작은 수인 1부터 숫자 추가.

마지막 인덱스이거나 patter[i] == I 이면 stack 모두 비울때까지 res 배열에 넣는다. stack 이라서 FIFO 구조로 먼저 넣은 숫자 먼저 res에 저장된다.

 

마지막에 res 배열에 있는 숫자들 join 해주면됨!

 

pattern의 길이가 8까지라서 hint에도 bruteforce로 다해보라고 권했음.

 

 

Code

class Solution:
    def smallestNumber(self, pattern: str) -> str:
        res = []
        stack = []
        n = len(pattern)

        for i in range(n+1):
            stack.append(str(i+1)) #start with 1
            #last index or patter[i] = I, popup stack
            if i == n or pattern[i] == 'I':
                while stack:
                    res.append(stack.pop())
        return ''.join(res)



 

Complexity

Time Complexity

loop를 n번만큼 순회한다. -> O(N)

 

Space Complexity

추가적인 리스트 사용 -> O(N)

728x90
저작자표시 비영리 변경금지 (새창열림)

'코딩 테스트' 카테고리의 다른 글

[LeetCdoe] 1079. Letter Tile Possibilities (Python)  (0) 2025.02.20
[LeetCode] 1415. The k-th Lexicographical String of All Happy Strings of Length n (Python)  (0) 2025.02.19
[LeetCode] 1718. Construct the Lexicographically Largest Valid Sequence (Python)  (0) 2025.02.16
[LeetCode] 2698. Find the Punishment Number of an Integer (Python)  (0) 2025.02.15
[LeetCode] CodeTestcaseTestcaseTest Result1352. Product of the Last K Numbers (Python)  (0) 2025.02.14
'코딩 테스트' 카테고리의 다른 글
  • [LeetCdoe] 1079. Letter Tile Possibilities (Python)
  • [LeetCode] 1415. The k-th Lexicographical String of All Happy Strings of Length n (Python)
  • [LeetCode] 1718. Construct the Lexicographically Largest Valid Sequence (Python)
  • [LeetCode] 2698. Find the Punishment Number of an Integer (Python)
zoodi
zoodi
IT/개발 관련 지식을 기록하는 블로그입니다.
  • zoodi
    오늘의 기록
    zoodi
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 후기
        • 컨퍼런스
        • 일상리뷰
      • 금융경제
        • 뉴스
        • 금융IT용어
        • 경제 및 부동산
      • 코딩 테스트
      • 스터디
        • JAVA
        • Kotlin
        • Spring
        • React, Nextjs
        • 인공지능 AI
        • Cloud & k8s
        • Kafka
        • Database
        • Network
        • Algorithm
        • Hadoop
        • LINUX
        • R Programming
        • 기타 (소공, 보안)
      • 도서
      • 기타
  • 블로그 메뉴

    • 홈
    • 스터디
    • 금융경제
    • 후기
    • 기타
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    코테
    알고리즘
    이분탐색
    codility
    Python
    스프링
    네트워크
    CodingTest
    kafka
    LeetCode
    db
    java
    MySQL
    자료구조
    C++
    프로그래머스
    pythoncodingtest
    쿠버네티스
    코딩테스트
    springboot
    Spring
    코딜리티
    코딩
    스프링부트
    Kotlin
    자바
    코테공부
    카카오코테
    리트코드
    금융용어
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
zoodi
[LeetCode] 2375. Construct Smallest Number From DI String (Python)
상단으로

티스토리툴바