Loading the catalog…
Loading the catalog…
문제 링크 큰 수 만들기 코드 #include <string> #include <vector> using namespace std; string solution(string number, int k) { string answer = ""; // answer에 number를 앞에서부터 한 글자씩 넣기 // answer의 숫자 < number의 숫자 -> answer의 숫자 pop for (int i = 0; i < number.length(); i++) { while (k > 0 && !answer.empty() && answer.back() < number[i]) { answer.pop_back(); k--; } answer.push_back(number[i]); } // k가 남는 경우 if (k > 0) { answer.erase(answer.length() - k, k); } return answer; } 회고 처음에는 number 자체에서 숫자를 빼려다 보니까 erase() 를 썼다. 하지만 erase() 는 배열 원소를 하나씩 앞으로 땡기는거 때문에 시간 초과가 났다. 따라서 빈 answer 에 number 원소를 하나씩 붙이는 방식을 썼다. number 가 내림차순으로 되어 있으면 아예 숫자를 제거하지 않는 경우도 있다. 이럴 땐 마지막에 k 가 남게 되는데, answer 에서 뒤에 k 만큼 글자를 제거하는 과정이 필요하다.
What RADAR observed and classified to build this opportunity. It is what the source published, not a verification that the offer is still active.
[프로그래머스] 큰 수 만들기 - 탐욕법/C++. 문제 링크 큰 수 만들기 코드 #include #include using namespace std; string solution(string number, int k) { string answer = ""; // answer에 number를 앞에서부터 한 글자씩 넣기 // answer의 숫자 answer의 숫자 pop for (int i = 0; i 0 && !answer.empty() && answer.back() 0) { answer.erase(answer.length() - k, k); } return answer; } 회고 처음에는 number 자체에서 숫자를 빼려다 보니까 erase() 를 썼다. 하지만 erase() 는 배열 원소를 하나씩 앞으로…
Open source