Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 오블완
- 캐시의 작동 원리
- 한화시스템부트캠프
- XSS
- QA
- 부트캠프
- Java
- n8n
- Kafka
- 헥사고날아키텍처
- 자료구조
- nplus1
- JPA
- 프로토콜역할
- selenium
- jwt토큰
- 오버로딩
- 메소드
- 티스토리챌린지
- 자동화워크플로우
- STOMP
- 엘라스틱서치
- 하이브리드접근법
- 테스트케이스
- springboot
- 스프링시큐리티
- kafka배포
- 자바
- 프로세스와스레드의차이
- N+1문제
Archives
- Today
- Total
아쿠의 개발 일지
[프로그래머스][Greedy] : 큰 수 만들기 - Python 본문
🔴 Greedy 알고리즘
- 현재 상황에서 가장 좋은 방향을 선택하는 방법
- 탐욕 알고리즘은 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달한다.
🟠 문제

🟡 접근 방법
- stack 생성 > python에서는 list 활용 가능
- 핵심은 스택의 마지막 값이 push 할 값보다 작다면 크거나 같은 값이 나올 때까지 값들에 대해서 pop을 하는 것이다.
- pop을 할 때마다 k를 감소시켜주고, k가 0이 되면 더 이상 삭제할 수 없으므로 남은 수를 모두 넣어준다.
- 수를 다 비교 했는데 k가 남아있다면, k의 값만큼 뒤에서부터 잘라준다
- 이렇게 하면 O(n)의 시간 복잡도로 문제를 해결할 수 있다.

🟢 나름의 해설
- stack 리스트 활용 가능
- stack의 마지막 값이 push 할 값보다 작다면 크거나 같은 값이 나올 때까지 값들에 대해서 pop 한다.
- number 을 돌려 조건문을 만족할 경우 명령문 반복
여기서 조건문은 3개
1. k > 0
2. stack이 비어있지 않다
3. stack의 마지막 값 < num
stack을 pop
k--
stack에 num을 push (append 활용)
k > 0 이상이면 스택에서 k개 삭제 후 join해서 결과 값 반환
728x90
'ETC > 코딩테스트' 카테고리의 다른 글
[백준][조건문] 9498번 : 시험 성적 - JAVA (4) | 2024.06.13 |
---|---|
[프로그래머스][Greedy] : 체육복 - Python (0) | 2024.05.12 |