-
[프로그래머스/Level 1] 개인정보 수집 유효기간알고리즘 문제풀이/프로그래머스 2023. 4. 10. 20:56
https://school.programmers.co.kr/learn/courses/30/lessons/150370
카카오 기출
오늘 날짜와 각 약관의 유효기간을 일(day) 단위로 변환 후 비교하면 간단하게 해결 가능하다.
주의할 점은 유효기간 변환 후 -1을 해줘야한다.
#include <string> #include <vector> #include <sstream> #include <map> #include <algorithm> #include <iostream> using namespace std; map<string, int> m; vector<int> solution(string today, vector<string> terms, vector<string> privacies) { vector<int> answer; int year = stoi(today.substr(0, 4)); int month = stoi(today.substr(5, 2)); int day = stoi(today.substr(8, 2)); int date = year * 12 * 28 + month * 28 + day; for (auto t : terms) { stringstream ss(t); string type; int period; ss >> type >> period; m[type] = period; } for (int i = 0; i < privacies.size(); i++) { string privacy = privacies[i]; stringstream ss(privacy); string period, type; ss >> period >> type; int p_year = stoi(privacy.substr(0, 4)); int p_month = stoi(privacy.substr(5, 2)); int p_day = stoi(privacy.substr(8, 2)); int p_date = p_year * 12 * 28 + (p_month + m[type]) * 28 + p_day - 1; if (date > p_date) { answer.push_back(i + 1); } } return answer; }
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Level 1] 공원 산책 (0) 2024.01.02 [프로그래머스/Level 1] 달리기 경주 (0) 2023.12.27 [프로그래머스/Level 2] k진수에서 소수 개수 구하기 (0) 2022.10.10 [프로그래머스/Level 1] 신고 결과 받기 (1) 2022.10.03 [프로그래머스/Level 3] 등산코스 정하기 (0) 2022.09.29