728x90
📌오늘의 학습 키워드
- 자꾸 그리디랑 완전 탐색을 착각하는 나자신... 그리디는 어려운 점이 어떤 방법이 그리디한지 알기 어려워서가 아닐까 싶다.
✨공부한 내용 본인의 언어로 정리하기
- 사실 너무 오래 걸려서 다른 분이 짜신 코드를 참고했다. 스택을 이용해 해결했다.
📚오늘의 회고
- 어떤 문제가 있었고, 나는 어떤 시도를 했는지
- 처음에는 재귀로 모든 경우의 수를 탐색 한 다음 큰 수 를 찾으려고 했으나 시간 초과가 떴다.
- 어떻게 해결했는지
- 사실 어떤 것이 큰 수를 만드는 그리디 방식인지 몰라 다른 분들의 코드를 찾아봤고 스택을 통해 해결하는 방법을 찾았다.
- O(n)의 시간 복잡도를 가지는 방법으로 한 숫자씩 돌아가면서 만약 스택 가장 위에 있는 수가 현재 숫자보다 작으면 다 빼버리는 방식이었다.
<참고한 선생님의 링크>
프로그래머스 - 42883: 큰 수 만들기 - 자바 풀이(10번 시간초과)
https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는
programmer-may.tistory.com
[🤓문제 해결 코드] - 파이썬
def solution(number, k):
candidates = set()
num_list = [n for n in number]
num_stack = []
# 몇 번을 제거할 지 정하기
for num in num_list:
while num_stack and k > 0 and num_stack[-1] < num:
num_stack.pop()
k -= 1
else:
num_stack.append(num)
if k == 1:
num_stack.pop()
return ''.join(num_stack)
728x90
'코딩테스트' 카테고리의 다른 글
프로그래머스 피보나치 수 파이썬 (0) | 2024.08.11 |
---|---|
[코드트리 조별과제] 겹치지 않게 선분 고르기 (0) | 2024.08.10 |
구명보트 - 프로그래머스 (0) | 2024.08.09 |
백준 2667 단지번호 붙이기 파이썬 (0) | 2024.08.08 |
백준 2644 촌수계 파이썬 (0) | 2024.08.07 |