1) 들어온 문자열에서 가장 큰 숫자를 찾음
2) 해당 숫자의 왼쪽 숫자 중에서 가장 작은 수를 찾음
3) 삭제함
4) 삭제할 숫자가 없을 경우 해당 숫자의 오른쪽 숫자 중에서 가장 작은 수 부터 삭제
5) 삭제해야하는 갯수 K 만큼 재귀 반복
이렇게 하면 된다는 것까지는 도움받아서 알아냈는데...
막상 구현을 하려니 각각의 기능은 간단한데 그걸 연결하기가 쉽지 않다...
이거 근데 올린 놈 어디서 갖고 온거냐?
1) 들어온 문자열에서 가장 큰 숫자를 찾음
2) 해당 숫자의 왼쪽 숫자 중에서 가장 작은 수를 찾음
3) 삭제함
4) 삭제할 숫자가 없을 경우 해당 숫자의 오른쪽 숫자 중에서 가장 작은 수 부터 삭제
5) 삭제해야하는 갯수 K 만큼 재귀 반복
이렇게 하면 된다는 것까지는 도움받아서 알아냈는데...
막상 구현을 하려니 각각의 기능은 간단한데 그걸 연결하기가 쉽지 않다...
이거 근데 올린 놈 어디서 갖고 온거냐?
어려우면 파이썬으로
사실 C로 하고있었음
이해가안되는데 3번째 예시 가장큰숫자 4332 아니야?
순서 바꾸는건 안되나보지
정렬 금지
4개 치우면 6자리 숫자
아니 두번째 예시구나
큰 같은숫자가 여러개면 어케함
먼저 찾은 숫자를 기준으로
2번 3번은 필요없는 과정 아닐까
핵심적과정 아님?
아 나도 잘못 이해했다 미안
근데 4번은 알고리즘이 틀린거 가타 ㅇㅅㅇ
단순 크기 순으로 삭제하면 마지막 예제 답이 775841 안됨 1부터 삭제했을태니.
4177852841 에서 6개 지운다고 쳤을때 5번째 8을 기준으로 왼쪽의 1, 4, 7, 7 지우고 오른쪽의 1, 2 지워서 8584 남는데 확인해 봐
그러게 8841이 더 큰데
오른쪽 숫자 역시 왼쪽부터 차근차근 삭제해가며 다만 그 수가 해당 숫자의 오른쩍보다 클시 삭제 안하는 식으로 가야할덧.
그러네 수정이 좀 필요하군
아니 그냥 오른쪽 왼쪽 안나누고 반복문 돌면서 바로 뒤 숫자보다 적으면 삭제 하고... 바꾸기로 한 숫자만큼 바꾸면 break 혹 54321 식으로 되어있어서 못바꾸면 못바꾼 수만큼 뒤에 숫자 삭제 하면 될거같음
문자열 - 빼는 개수 = a라고 하고, 왼쪽부터 탐색하며 a보다 크거나 같은 것을 만족하는 가장 큰 숫자를 찾는다. 이거 반복 하면 됨 ㅅㄱ - dc App
남은 문자열 개수가 a보다 크거나 같은 것을 만족하는 것임. 이후 똑같은 로직을 그 다음 문자부터 찾아서 적용하는 걸 반복하면 됨 - dc App
덱쓰면 됨. 수 추가할깨마다 자기보다 작은놈들 팝 백