컴공 일기274
게시글 주소: https://orbi.kr/00071962271
https://school.programmers.co.kr/learn/courses/30/lessons/72411
카카오 코딩테스트 문제답습니다.
소위 코딩 근육을 묻는 문제같네요.
해시, 재귀, 조합, 문자열 파싱, 최대최소
각종 요소들이 복합적으로 어우러져 있습니다..
이런 문제는 구현하는데 시간 좀 잡아먹습니다.
많게는 2-3시간 걸릴 법한 문제죠.
#include <string>
#include <vector>
#include <unordered_map>
#include <algorithm>
using namespace std;
unordered_map<string, int> course_map;
void generateCombinations(const string& str, string current, int index, int k)
{
if(current.size() == k)
{
course_map[current]++;
return;
}
if(index == str.size()) return;
//include
generateCombinations(str, current+str[index], index+1, k);
//not include
generateCombinations(str, current, index+1, k);
}
vector<string> solution(vector<string> orders, vector<int> course) {
vector<string> answer;
unordered_map<int, string> menu_map;
for(auto& order : orders)
{
sort(order.begin(), order.end());
}
//initialization of menu_map
for(int i=0; i<orders.size(); i++)
{
menu_map[i] = orders[i];
}
//initialization of course_map
for(const auto& course_length : course)
{
course_map.clear();
for(const auto& order : orders)
{
if(order.size() >= course_length)
{
generateCombinations(order, "", 0, course_length);
}
}
int max_count = 0;
for(const auto& [key, value] : course_map)
{
if(value > max_count)
{
max_count = value;
}
}
if(max_count >= 2)
{
for(const auto& [key, value] : course_map)
{
if(value == max_count)
{
answer.push_back(key);
}
}
}
}
sort(answer.begin(), answer.end());
return answer;
}
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
보호 1 0
2ㅣ
-
소신발언 7 0
아무리 좋고 뛰어난 강사나 선생님이어도 강의가 모든 학생의 만족을 충족하기 어려움....
-
이제 ufc 끝난건가 0 0
자러감
-
아죽고싶다 0 0
난왜못생겼을까 원망스럽구나 가슴이 아프다
-
??? : 다들 군대는 언제쯤 가실 예정이세요? ??? : 예비군 2년차입니다......
-
그냥할말이없네 0 0
네사문생윤3등급여깄어요
-
잠 글럿다 0 0
나 어떡해. ㅜㅜ
-
ㅇㅈ후현타 0 2
뭐라고 불러야 되지
-
중앙대 학잠 살 오르비언 있냐 2 0
2xl 상태좋음 얼마안입음 오늘중에 거래해주면 3.5에 해드림
-
쪽지 보냇어요 0 1
확인 좀
-
같은 사진 연속으로 돌렸는데 백분위가 30씩 바뀜
-
서울대 내신 aa 가능? 2 0
2학년까지 1.5 중반인데 하향곡선 물화생지 기하 다 함 수학 등급 1.1 과학이...
-
최소 1박 7만원 개ㅅㅂ 양심없나
-
시발 내 입시 왜 이래 4 1
뭐 면접 점수 내신 점수가 영향을 줬는지 나보다 정시 환산점 이하인 애들은 최초합,...










첫번째 댓글의 주인공이 되어보세요.