컴공 일기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를 선물하세요.
-
한서삼도 인서울임? 7 0
ㅇㅇ?
-
저 대학생임 12 0
방가방가
-
서울대 높공 6 0
과탐 투과목을 하지 않는 이상은 서울대 높공은 가기 힘들다 봐야 하나요? 지금...
-
전해주고싶어슬픈시간이 2 2
다흩어진후에야들리지만
-
배부르군 14 1
커피 ㄱㄱ헛
-
보고싶어 1 0
오르비 24시간 내내 보고 싶어
-
고경은 교과우수도 펑크네요 10 1
고대여..
-
수특 문학을 끝내는데 오래 걸려도 괜찮을까요? 생노베 수준인데 수특 문학 책에서...
-
번호바꾸고 잠적해야지 1 1
후후
-
대학원 하면 떠오르는 이미지 3 1
학부아닌 석사는 세탁이라고 생각하시나요? 뭐 물론 교수하고싶어서 석사 박사 취득하는...
-
중앙대 한양대 제발 부탁드립니다 13 0
중앙대 기계랑 한양대 에너지 붙으면 어디 가나요
-
화작하지마라.. 7 0
-
이번 추합 잘 안돈편임? 4 0
작년 입결이랑 너무 다른데....
-
완전 노베에서 시작해서 똑같은 기간 공부했는데 과탐 실력이 사탐보다 높은 사람이 있나요?










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