[프로그래머스] 큰 수 만들기 (Level 2) (파이썬 python)

2023. 10. 18. 15:09· Algorithm/Programmers

 

문제 링크

 

https://school.programmers.co.kr/learn/courses/30/lessons/42883

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

문제 풀이

 

def solution(number, k):
    answer = []
    for n in number:
        while answer and k > 0 and answer[-1] < n:
            answer.pop()
            k -= 1
        answer.append(n)
    return ''.join(answer[:len(number) - k])

 

combinations를 활용해서 최대를 구하는 방식을 생각해보았지만

순서도 엉키고 시간도 초과된다.

stack을 활용해서 시간적으로 효율적인 코드를 작성할 수 있었다.

 

주어진 number에서 앞에서부터 숫자를 하나씩 확인한다.

 

1. stack(변수 이름 answer)이 존재하며, 2. 삭제해야 할 개수가 채워지지 않았고

3. 현재 숫자가 stack의 맨 뒷 숫자보다 클 경우

n보다 작은 answer의 원소들을 하나씩 삭제해준다.

이때 k를 1씩 감소시켜준다 (앞 숫자들 중 작은 숫자들이 삭제되고 있는 것이므로)

현재 원소보다 작은 숫자들이 모두 사라졌다면, answer에 현재 원소를 추가해준다.

 

이런식으로 반복하게 되면, answer에는 앞에서부터 큰 숫자를 채워주기 때문에

최종적으로 가장 큰 수가 된다.

 

만약 answer의 크기가 k를 잘라낸 길이보다 클 경우

원하는 길이 (원래 숫자의 길이 - k) 만큼 슬라이싱하여 반환해준다.

 

 

느낀 점

 

아이디어를 떠올리는 것 자체도 쉽지 않다...

막상 코드를 작성해보면 너무 간단한데 조건 하나하나를 생각하는게 어려운 것 같다

 

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

'Algorithm > Programmers' 카테고리의 다른 글

[프로그래머스] 할인 행사 (Level 2) (파이썬 python)  (0) 2024.05.21
[프로그래머스] 구명보트 (Level 2) (파이썬 python)  (1) 2023.10.18
[프로그래머스] 더 맵게 (Level 2) (파이썬 python)  (0) 2022.02.16
[프로그래머스] 베스트앨범 (Level 3) (파이썬 python)  (0) 2022.02.15
[프로그래머스] 위장 (Level 2) (파이썬 python)  (0) 2022.02.14
'Algorithm/Programmers' 카테고리의 다른 글
  • [프로그래머스] 할인 행사 (Level 2) (파이썬 python)
  • [프로그래머스] 구명보트 (Level 2) (파이썬 python)
  • [프로그래머스] 더 맵게 (Level 2) (파이썬 python)
  • [프로그래머스] 베스트앨범 (Level 3) (파이썬 python)
YOONJELLY
YOONJELLY
YOONJELLY
JELLYJELLY
YOONJELLY
전체
오늘
어제
  • 분류 전체보기 (153)
    • Springboot (2)
    • Android (15)
    • Algorithm (126)
      • 개념 (8)
      • BOJ (91)
      • Programmers (15)
      • SWEA (4)
    • 경험_기록 (1)
    • RIM_TIP (4)
    • Github (2)
    • CS (1)
      • 운영체제 (1)
      • 컴퓨터네트워크 (0)
      • 정보처리기사 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 딕셔너리
  • 파이썬
  • 자료구조
  • 이진탐색
  • 백준
  • 프로그래머스
  • Android
  • DFS
  • 알고리즘
  • 그리디
  • 액티비티컴포넌트
  • softeer
  • 코딩테스트
  • BOJ
  • 이것이코딩테스트다
  • kotlin
  • 큐
  • 소프티어
  • 안드로이드
  • DP
  • 문자열
  • 완전탐색
  • Python
  • 다이나믹프로그래밍
  • BFS
  • 스택
  • 코틀린
  • SWEA
  • 정렬
  • programmers

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
YOONJELLY
[프로그래머스] 큰 수 만들기 (Level 2) (파이썬 python)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.