컴공 일기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 돌연변이 버리고 1 0
신경전도 풀다가 시험 끝났는데 그냥 돌연변이 푸는게 더 나은 판단이었을까요 돌연변이...
-
6평 22 작수30 0 0
구할만한 초월방정식의해를 물어보내요
-
오늘은 맘편하게 피자먹으면서 옯질하다가 야구봐야지 0 0
나에게 주는 선물
-
약자에 대한 배려 이게 문제임 3 6
약자에 대한 배려를 하려면 약자에 대한 상식적인 기준을 알아야되는데 아무도 이에대한...
-
나중에 과학기술도 넣나 ㅋㅋ
-
국어97 0 0
ㅁㅌㅊ?
-
반수 수학 감올릴려고 하는데 0 0
작수 미적 성적 질받았는데 인터넷 훈수를 듣는게 현명한걸까요 아님 제 스타일대로...
-
화작 96 백분위 몇뜸? 0 0
ㅈㄱㄴ
-
오늘 건질문제 많았나요?? 0 0
국수탐 주요문항만 풀까여 국수영탐 다 풀까여 오늘 6모라 확실히 결석 엄청 많네옄ㅋㅋㅋㅋㅋㅋㅋ
-
부탁드려요~
-
왜클릭
-
6평 후기 0 0
국어 95 (16 37틀) 수학 74…(3점 두개 실수함 ㅅㅂ)
-
옯붕이들아 나 영어인데 2 0
나 유기하면 안돼? 으응? 그럴꺼지? 믿는다아..
첫번째 댓글의 주인공이 되어보세요.