[프로그래머스] 큰 수 만들기 (Python)

2021. 3. 18. 15:25·코딩 테스트
728x90

🍒문제

programmers.co.kr/learn/courses/30/lessons/42883

 

코딩테스트 연습 - 큰 수 만들기

 

programmers.co.kr

🍒풀이

1. 큰 수 만들 리스트 collected 선언

2. number 순회

  2-1. collected에 원소가 존재하고

  2-2. collected의 마지막 원소가 비교하는 원소보다 작고

  2-3. k가 0보다 크면

3. collected의 마지막 원소 pop

4. k = k - 1

5. k = 0 이라면 number의 남은 숫자들 collected 에  붙여 넣음 (반복문 종료)

6. 비교 숫자 num을 collected에 넣음

7. 마지막 collected의 문자열을 concat

 

 

🍒코드 - 1 (시간초과)

import itertools

def solution(number, k):
    answer = ''
    n =len(number) - k
    num  = list(map(''.join, itertools.combinations(number, n)))
    
    num.sort(reverse=True)
    
    answer = num[0]
    return answer

itertools의 combinations 라이브러리를 쓰니 시간초과가 나서 다른 방법을 찾아보았다.

 

🍒코드 - 2

def solution(number, k):
    answer = ''
    collected = []
    
    for(i, num) in enumerate(number):
        #collected에 원소 존재, 마지막숫자가 num보다 작으면 뺌, k > 0 일 경우
        while collected and collected[-1] < num and k>0:
            collected.pop()
            k -= 1
            
        #다 뺐으면 남은 리스트 collected에 넣어줌
        if k ==0 :
            collected += number[i:]
            break
        collected.append(num)
        
    # k>0이면 collected 뒤에서 k개 만큼 자른다
    if (k > 0):
        collected = collected[:-k]
    answer = "".join(collected)
    return answer
728x90

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

[프로그래머스] 이진 변환 반복하기 (Python)  (0) 2021.03.18
[프로그래머스] 메뉴 리뉴얼 (Python)  (0) 2021.03.18
[프로그래머스] 조이스틱 (Python)  (0) 2021.03.18
[프로그래머스] 삼각 달팽이 (C++)  (0) 2021.03.17
[Codility] Lesson8. Dominator  (0) 2021.03.03
'코딩 테스트' 카테고리의 다른 글
  • [프로그래머스] 이진 변환 반복하기 (Python)
  • [프로그래머스] 메뉴 리뉴얼 (Python)
  • [프로그래머스] 조이스틱 (Python)
  • [프로그래머스] 삼각 달팽이 (C++)
zoodi
zoodi
IT/개발 관련 지식을 기록하는 블로그입니다.
  • zoodi
    오늘의 기록
    zoodi
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 후기
        • 컨퍼런스
        • 일상리뷰
      • 금융경제
        • 뉴스
        • 금융IT용어
        • 경제 및 부동산
      • 코딩 테스트
      • 스터디
        • JAVA
        • Kotlin
        • Spring
        • React, Nextjs
        • 인공지능 AI
        • Cloud & k8s
        • Kafka
        • Database
        • Network
        • Algorithm
        • Hadoop
        • LINUX
        • R Programming
        • 기타 (소공, 보안)
      • 도서
      • 기타
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
zoodi
[프로그래머스] 큰 수 만들기 (Python)
상단으로

티스토리툴바