-
[리트코드] 0715공부기록/문제풀이 2021. 7. 15. 15:29
주어진 문자열을 임의의 순서(다른 문자열 order이 주어짐)로 정렬해야 하는 문제였다.
order을 보고 만든 dictionary를 이용해서 std::sort에 compare를 이용해 정렬 순서를 바꿀 수 있다.
원래 compare함수를 따로 만들고 넣어줬는데, 오류가 났다. g++로 직접 돌려보니까 오류가 나지 않아서 뭐지 싶었다.
리트코드 사이트에서 인식을 못하는 듯 해서 어떡하지 하다가 람다식을 검색해서 해봤더니 해결되었다.
class Solution { public: unordered_map<char, int> dict; bool compare(char c1, char c2){ return dict[c1] > dict[c2]; } string customSortString(string order, string str) { for(int i=0; i<order.size(); i++){ dict[order[i]] = i; } sort(str.begin(), str.end(), [&](char c1, char c2)->bool {return dict[c1]<dict[c2];}); return str; } };
'공부기록 > 문제풀이' 카테고리의 다른 글
[리트코드] 0713 (0) 2021.07.13 [리트코드] 0712 (0) 2021.07.12 [리트코드] 0711 (0) 2021.07.11 [리트코드] 0710 (0) 2021.07.10 [리트코드] (0) 2021.07.09