https://school.programmers.co.kr/learn/courses/30/lessons/150370#
2023 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฝํ ๊ธฐ์ถ
๋ฌธ์ ์ค๋ช
๊ณ ๊ฐ์ ์ฝ๊ด ๋์๋ฅผ ์ป์ด์ ์์ง๋ 1~n๋ฒ์ผ๋ก ๋ถ๋ฅ๋๋ ๊ฐ์ธ์ ๋ณด n๊ฐ๊ฐ ์์ต๋๋ค. ์ฝ๊ด ์ข ๋ฅ๋ ์ฌ๋ฌ ๊ฐ์ง ์์ผ๋ฉฐ ๊ฐ ์ฝ๊ด๋ง๋ค ๊ฐ์ธ์ ๋ณด ๋ณด๊ด ์ ํจ๊ธฐ๊ฐ์ด ์ ํด์ ธ ์์ต๋๋ค. ๋น์ ์ ๊ฐ ๊ฐ์ธ์ ๋ณด๊ฐ ์ด๋ค ์ฝ๊ด์ผ๋ก ์์ง๋๋์ง ์๊ณ ์์ต๋๋ค. ์์ง๋ ๊ฐ์ธ์ ๋ณด๋ ์ ํจ๊ธฐ๊ฐ ์ ๊น์ง๋ง ๋ณด๊ด ๊ฐ๋ฅํ๋ฉฐ, ์ ํจ๊ธฐ๊ฐ์ด ์ง๋ฌ๋ค๋ฉด ๋ฐ๋์ ํ๊ธฐํด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, A๋ผ๋ ์ฝ๊ด์ ์ ํจ๊ธฐ๊ฐ์ด 12 ๋ฌ์ด๊ณ , 2021๋
1์ 5์ผ์ ์์ง๋ ๊ฐ์ธ์ ๋ณด๊ฐ A์ฝ๊ด์ผ๋ก ์์ง๋์๋ค๋ฉด ํด๋น ๊ฐ์ธ์ ๋ณด๋ 2022๋
1์ 4์ผ๊น์ง ๋ณด๊ด ๊ฐ๋ฅํ๋ฉฐ 2022๋
1์ 5์ผ๋ถํฐ ํ๊ธฐํด์ผ ํ ๊ฐ์ธ์ ๋ณด์
๋๋ค.
๋น์ ์ ์ค๋ ๋ ์ง๋ก ํ๊ธฐํด์ผ ํ ๊ฐ์ธ์ ๋ณด ๋ฒํธ๋ค์ ๊ตฌํ๋ ค ํฉ๋๋ค.
๋ชจ๋ ๋ฌ์ 28์ผ๊น์ง ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
๋ค์์ ์ค๋ ๋ ์ง๊ฐ 2022.05.19์ผ ๋์ ์์์ ๋๋ค.
์ฝ๊ด ์ข ๋ฅ์ ํจ๊ธฐ๊ฐ
A | 6 ๋ฌ |
B | 12 ๋ฌ |
C | 3 ๋ฌ |
1 | 2021.05.02 | A |
2 | 2021.07.01 | B |
3 | 2022.02.19 | C |
4 | 2022.02.20 | C |
- ์ฒซ ๋ฒ์งธ ๊ฐ์ธ์ ๋ณด๋ A์ฝ๊ด์ ์ํด 2021๋ 11์ 1์ผ๊น์ง ๋ณด๊ด ๊ฐ๋ฅํ๋ฉฐ, ์ ํจ๊ธฐ๊ฐ์ด ์ง๋ฌ์ผ๋ฏ๋ก ํ๊ธฐํด์ผ ํ ๊ฐ์ธ์ ๋ณด์ ๋๋ค.
- ๋ ๋ฒ์งธ ๊ฐ์ธ์ ๋ณด๋ B์ฝ๊ด์ ์ํด 2022๋ 6์ 28์ผ๊น์ง ๋ณด๊ด ๊ฐ๋ฅํ๋ฉฐ, ์ ํจ๊ธฐ๊ฐ์ด ์ง๋์ง ์์์ผ๋ฏ๋ก ์์ง ๋ณด๊ด ๊ฐ๋ฅํฉ๋๋ค.
- ์ธ ๋ฒ์งธ ๊ฐ์ธ์ ๋ณด๋ C์ฝ๊ด์ ์ํด 2022๋ 5์ 18์ผ๊น์ง ๋ณด๊ด ๊ฐ๋ฅํ๋ฉฐ, ์ ํจ๊ธฐ๊ฐ์ด ์ง๋ฌ์ผ๋ฏ๋ก ํ๊ธฐํด์ผ ํ ๊ฐ์ธ์ ๋ณด์ ๋๋ค.
- ๋ค ๋ฒ์งธ ๊ฐ์ธ์ ๋ณด๋ C์ฝ๊ด์ ์ํด 2022๋ 5์ 19์ผ๊น์ง ๋ณด๊ด ๊ฐ๋ฅํ๋ฉฐ, ์ ํจ๊ธฐ๊ฐ์ด ์ง๋์ง ์์์ผ๋ฏ๋ก ์์ง ๋ณด๊ด ๊ฐ๋ฅํฉ๋๋ค.
๋ฐ๋ผ์ ํ๊ธฐํด์ผ ํ ๊ฐ์ธ์ ๋ณด ๋ฒํธ๋ [1, 3]์ ๋๋ค.
์ค๋ ๋ ์ง๋ฅผ ์๋ฏธํ๋ ๋ฌธ์์ด today, ์ฝ๊ด์ ์ ํจ๊ธฐ๊ฐ์ ๋ด์ 1์ฐจ์ ๋ฌธ์์ด ๋ฐฐ์ด terms์ ์์ง๋ ๊ฐ์ธ์ ๋ณด์ ์ ๋ณด๋ฅผ ๋ด์ 1์ฐจ์ ๋ฌธ์์ด ๋ฐฐ์ด privacies๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ์ด๋ ํ๊ธฐํด์ผ ํ ๊ฐ์ธ์ ๋ณด์ ๋ฒํธ๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก 1์ฐจ์ ์ ์ ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
์นด์นด์ค ๊ธฐ์ถ ์ค level 1 ๋ฌธ์ ์ด๋ค.
๋ฌธ์์ด ๋ค๋ฃจ๊ธฐ ์ด์ธ์ ํน๋ณํ ์๊ณ ๋ฆฌ์ฆ ์คํฌ์ด ํ์ํ์ง ์์ง๋ง, ์๊ทผํ ๊ตฌํ์ด ๊น๋ค๋ก์ ๋ค.
12๊ฐ์์ด ๋์ด๊ฐ๋ฉด 1๋ ์ผ๋ก ์ฒ๋ฆฌํด์ฃผ์ด์ผ ํ๋๋ฐ,
์ด ๋ 12๋ก ๋๋ ๋๋จธ์ง ๊ฐ, ์ฆ month ๊ฐ์ด 0์ด ๋๋ฉด ๊ธฐ์กด privacies์ MM๊ฐ์ผ๋ก ๋์ฒดํด์ค์ผ ํ๋ค!!
์ด ๋ถ๋ถ์ ๋์ณ์ ํ๋ฒ ํ๋ฆผใ
๋์ ํ์ด
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
vector<int> solution(string today, vector<string> terms, vector<string> privacies) {
vector<int> answer;
vector<char> termA; // ์ฝ๊ด ์ข
๋ฅ
vector<int> term1; // ์ฝ๊ด ์ ํจ๊ธฐ๊ฐ ๋ฌ ์
int todayY = stoi(today.substr(0,4));
int todayM = stoi(today.substr(5,2));
int todayD = stoi(today.substr(8,2));
for(int i=0; i<terms.size();++i){ // ์ฝ๊ด ์ข
๋ฅ์ ๊ธฐ๊ฐ ๋ถ๋ฆฌ
termA.push_back(terms[i][0]);
terms[i].replace(0,2,"");
term1.push_back(stoi(terms[i]));
}
for(int i=0; i<privacies.size(); ++i){
char kindof=privacies[i][11];
int pY = stoi(privacies[i].substr(0,4));
int pM = stoi(privacies[i].substr(5,2));
int pD = stoi(privacies[i].substr(8,2));
int index = 0;
int year = 0;
int month = 0;
for(int j=0; j<termA.size(); ++j){
if(termA[j] == kindof) {
index = j;
break;
}
}
year = term1[index]/12;
month = term1[index]%12;
year += pY;
month += pM;
if(month > 12){ // 24
year += month/12; // +2
month = month%12; // 0
}
if(month==0) month += pM;
cout <<year<<" "<<month<<"\n";
if(year < todayY) answer.push_back(i+1);
else if(year == todayY){
if(month< todayM) answer.push_back(i+1);
else if(month==todayM){
if(pD-1 < todayD) answer.push_back(i+1);
}
}
}
return answer;
}
'๐ ์๊ณ ๋ฆฌ์ฆ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++/PGS] Lv.1 : ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ (์นด์นด์ค ๊ธฐ์ถ) (0) | 2023.04.12 |
---|---|
[C++/PGS] Lv.1 : ์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌํ๊ธฐ (์นด์นด์ค ๊ธฐ์ถ) (0) | 2023.04.12 |
[C++/PGS] Lv.5 : ๋ฐฉ์ ๊ฐ์ (๊ทธ๋ํ) (0) | 2023.04.12 |
[C++/PGS] Lv.3 : N์ผ๋ก ํํ (DP) (0) | 2023.03.03 |
[C++/PGS] Lv.3 : ์์ (๊ทธ๋ํ/Floyd-Warshall) (1) | 2023.03.03 |