728x90
해당문제를 풀때, 문장이 길지 않아서 쉽게 풀릴것으로 예상했지만, 내 예상이 맞질 않았다.
처음에는 간단히 주어진 number를 CharArray로 바꾸고 나눌생각만했는데, 문제를 풀다보니 k를 제거하는것이어서
다시 문제를 읽고 해결했다.
number을 문자타입의 배열로 변환 후 해당 문자들을 하나씩 꺼내서 결과적으로 가장 큰 수를 만들어내면 되는것 같았다.
문제를 푼과정은 다음과 같았다.
1. number의 형을 배열로 변환한다.
2. 스택초기화:
문자형타입의 스택을 초기화해서 결과를 담으려고했다.
3. 숫자 순회:
코드가 입력 숫자의 각 자릿루를 반복하면서 각 숫자에 대해 스택의 맨 위 숫자가 현재 숫자보다 작고 아직 제거할 수 있는 횟수가 남아있는 경우, 스택에서 숫자를 제거한다.
4. 스택에 숫자 추가:
현재 숫자를 스택에 추가한다. 이때 현재 숫자보다 작은 숫자는 이미 제거되었거나 스택에 남아있을 수 있다.
5. 제거 가능한 횟수만큼 스택 정리:
제거 가능한 횟수가 남아 있는 경우, 스택에서 숫자를 제거함.
스택의 맨 위에서부터 숫자를 제거하고, 제거 횟수를 증가한다.
6. 결과 반환:
스택에 남아있는 숫자들을 문자열로 변환하여 반환한다.
반환된 문자열은 제거된 숫자를 제외한 가장 큰 수를 나타낸다.
728x90
'TIL > kotlin 알고리즘' 카테고리의 다른 글
kotlin 프로그래머스 lv2 두 큐 합 같게 만들기 (0) | 2024.03.26 |
---|---|
kotlin 프로그래머스 lv2 연속된 부분 수열의 합 (0) | 2024.03.26 |
kotlin 프로그래머스 lv2 쿼드압축 후 개수 세기 (1) | 2024.03.23 |
kotlin 완전탐색 소수찾기 (0) | 2024.03.23 |
kotlin 프로그래머스 lv2 가장 큰 수 (1) | 2024.03.22 |