개발
[프로그래머스] 개인정보 수집 유효기간 (C++)
yun000
2024. 11. 30. 13:50
문제
https://school.programmers.co.kr/learn/courses/30/lessons/150370
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
년월일을 모두 일수로 바꿔서 계산했다
한달에 28일까지 있다고 가정했으니
월*28, 년*28*12로 계산했다.
코드
#include <string>
#include <vector>
#include <iostream>
#include <map>
using namespace std;
int changeToDate(string date)
{
int y = stoi(date.substr(0, 4));
int m = stoi(date.substr(5, 2));
int d = stoi(date.substr(8, 2));
int result=d+m*28+y*28*12;
return result;
}
vector<int> solution(string today, vector<string> terms, vector<string> privacies)
{
vector<int> answer;
//save terms
map<char,int>term;
for(int i=0;i<terms.size();i++)
{
term[terms[i][0]]=stoi(terms[i].substr(2,terms[i].size()-2))*28;
}
//privacies
int todayInt=changeToDate(today);
for(int i=0;i<privacies.size();i++)
{
char nowTerm=privacies[i][11];
int addMonth=term[nowTerm];
int newDate=changeToDate(privacies[i])+addMonth;
if(newDate<=todayInt){answer.push_back(i+1);}
}
//result
return answer;
}