카테고리 없음
[2024.05.17.] 융보공 8주차문제 풀이 (워게임 - 산타 할아버지도 힘들어요 , 코딩테스트)💗
z3r0_
2024. 5. 24. 13:42
오늘 풀어볼 것은 산타 할아버지도 힘들어요!
사실 이거 전에 Read my car 이라는 문제를 풀고 있었는데... MAC OS에서 지원하지 않는 무언가가 있는 관계로 그냥 다른 문제를 풀기로 함
'산타 할아버지도 힘들어요' 문제 풀이
어린 아이 : 산타할아버지! 선물을 할아버지가 모두 직접 보내주시나요??
산타 할아버지 : 물론이죠! 근데, 할아버지가 모든걸 직접 보내진 않아요~ 호호
어린 아이 : 그럼 누가 보내요?
산타 할아버지 : 우리 루돌프 중에 우주에 있는 NOAA 15 라는 친구가 있어요~
어린 아이 : 이름이 왜 NOAA 15 에요?
산타 할아버지 : 크면 다 알아요~ 호호호~ 메리 크리스마스!
우주에서 보내는 산타 할아버지의 선물을 받아봅시다! 호호
NOAA 15가 선물을 보낸다!
문제 풀이 파일을 보면 이렇게 음성 파일이 두 개 있는데
소리가... 진심 소름 돋음
새벽에 혼자 풀다가 약간 울 뻔...
그래서 이건 음성 파일이 아니고 약간 모스 부호 같은 느낌이다~ 라고 생각했어요
그래서 모스 부호를 해석해 주는 사이트에 들어가서 일단 업로드를 해 보았다.
그런데 파일 변환이 안 된다...! 그래서 여러 사이트로 시도를 해 보았는데
맥북이라 안 읽히는 듯 하여 다음에 다시 해 보기로...
코딩 테스트
창고 정리를 리스트를 사용하여 하는 것 같습니다!
#include <string>
#include <vector>
using namespace std;
string solution(vector<string> storage, vector<int> num) {
int num_item = 0;
vector<string> clean_storage(storage.size());
vector<int> clean_num(num.size());
for(int i=0; i<storage.size(); i++){
int clean_idx = -1;
for(int j=0; j<num_item; j++){
if(storage[i] == clean_storage[j]){
clean_idx = j;
break;
}
}
if(clean_idx == -1){
clean_storage[num_item] = to_string(num[i]);
clean_num[num_item] = num[i];
num_item += 1;
}
else{
clean_num[clean_idx] += num[i];
}
}
// 아래 코드에는 틀린 부분이 없습니다.
int num_max = -1;
string answer = "";
for(int i=0; i<num_item; i++){
if(clean_num[i] > num_max){
num_max = clean_num[i];
answer = clean_storage[i];
}
}
return answer;
}
주어진 코드는 이것이고, 이를 한 줄만 고쳐서 디버깅 해야 함!
정답은 clean_storage에 저장된 값을 제대로 바꾸어 주어야 함
#include <string>
#include <vector>
using namespace std;
string solution(vector<string> storage, vector<int> num) {
int num_item = 0;
vector<string> clean_storage(storage.size());
vector<int> clean_num(num.size());
for(int i=0; i<storage.size(); i++){
int clean_idx = -1;
for(int j=0; j<num_item; j++){
if(storage[i] == clean_storage[j]){
clean_idx = j;
break;
}
}
if(clean_idx == -1){
clean_storage[num_item] = storage[i];
clean_num[num_item] = num[i];
num_item += 1;
}
else{
clean_num[clean_idx] += num[i];
}
}
// 아래 코드에는 틀린 부분이 없습니다.
int num_max = -1;
string answer = "";
for(int i=0; i<num_item; i++){
if(clean_num[i] > num_max){
num_max = clean_num[i];
answer = clean_storage[i];
}
}
return answer;
}
정답!