- ์๊ณ ๋ฆฌ์ฆ
- ์ํฐ๋
- ๋นํธ๋งต
- ๋ฐฑ์ค
- ์น๋ฆฐ์ด
- go
- LCs
- Python
- ์นด์นด์ค ์ฝํ
- ํ๋ก๊ทธ๋๋จธ์ค
- ํ๋ฆฌ์จ๋ณด๋ฉ
- ๋์ ํ๋ก๊ทธ๋๋ฐ
- ์ฌ๊ท
- ํธ๋ฆฌ
- C++
- ์์ฝ๋
- ์นด์นด์ค2021
- Union-Find
- ์ด๋ถํ์
- ๊ฐ์ฅ๊ฐ๊น์ด๊ณตํต์กฐ์
- ๋ฐฑ์๋ ํ๋ฆฌ์จ๋ณด๋ฉ
- ๋ค์ต์คํธ๋ผ
- golang
- ๋นํธ๋ง์คํน
- DFS
- DP
- nestjs
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- BFS
- js
- Today
- Total
Hello Ocean! ๐ผ
[ํ๋ก๊ทธ๋๋จธ์ค/C++] [1์ฐจ] ์ ํ๋ฒ์ค ๋ณธ๋ฌธ
๋ฌธ์
์นด์นด์ค์์๋ ๋ฌด๋ฃ ์ ํ๋ฒ์ค๋ฅผ ์ดํํ๊ธฐ ๋๋ฌธ์ ํ๊ต์ญ์์ ํธํ๊ฒ ์ฌ๋ฌด์ค๋ก ์ฌ ์ ์๋ค. ์นด์นด์ค์ ์ง์์ ์๋ก๋ฅผ 'ํฌ๋ฃจ'๋ผ๊ณ ๋ถ๋ฅด๋๋ฐ, ์์นจ๋ง๋ค ๋ง์ ํฌ๋ฃจ๋ค์ด ์ด ์ ํ์ ์ด์ฉํ์ฌ ์ถ๊ทผํ๋ค.
์ด ๋ฌธ์ ์์๋ ํธ์๋ฅผ ์ํด ์ ํ์ ๋ค์๊ณผ ๊ฐ์ ๊ท์น์ผ๋ก ์ดํํ๋ค๊ณ ๊ฐ์ ํ์.
- ์ ํ์ 09:00๋ถํฐ ์ด nํ t๋ถ ๊ฐ๊ฒฉ์ผ๋ก ์ญ์ ๋์ฐฉํ๋ฉฐ, ํ๋์ ์ ํ์๋ ์ต๋ m๋ช ์ ์น๊ฐ์ด ํ ์ ์๋ค.
- ์ ํ์ ๋์ฐฉํ์ ๋ ๋์ฐฉํ ์๊ฐ์ ๋๊ธฐ์ด์ ์ ํฌ๋ฃจ๊น์ง ํฌํจํด์ ๋๊ธฐ ์์๋๋ก ํ์ฐ๊ณ ๋ฐ๋ก ์ถ๋ฐํ๋ค. ์๋ฅผ ๋ค์ด 09:00์ ๋์ฐฉํ ์ ํ์ ์๋ฆฌ๊ฐ ์๋ค๋ฉด 09:00์ ์ค์ ์ ํฌ๋ฃจ๋ ํ ์ ์๋ค.
์ผ์ฐ ๋์์ ์ ํ์ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ด ๊ท์ฐฎ์๋ ์ฝ์, ์ผ์ฃผ์ผ๊ฐ์ ์ง์ํ ๊ด์ฐฐ ๋์ ์ด๋ค ํฌ๋ฃจ๊ฐ ๋ช ์์ ์ ํ ๋๊ธฐ์ด์ ๋์ฐฉํ๋์ง ์์๋๋ค. ์ฝ์ด ์ ํ์ ํ๊ณ ์ฌ๋ฌด์ค๋ก ๊ฐ ์ ์๋ ๋์ฐฉ ์๊ฐ ์ค ์ ์ผ ๋ฆ์ ์๊ฐ์ ๊ตฌํ์ฌ๋ผ.
๋จ, ์ฝ์ ๊ฒ์ผ๋ฅด๊ธฐ ๋๋ฌธ์ ๊ฐ์ ์๊ฐ์ ๋์ฐฉํ ํฌ๋ฃจ ์ค ๋๊ธฐ์ด์์ ์ ์ผ ๋ค์ ์ ๋ค. ๋ํ, ๋ชจ๋ ํฌ๋ฃจ๋ ์ ์ ์์ผ ํ๋ฏ๋ก 23:59์ ์ง์ ๋์๊ฐ๋ค. ๋ฐ๋ผ์ ์ด๋ค ํฌ๋ฃจ๋ ๋ค์๋ ์ ํ์ ํ๋ ์ผ์ ์๋ค.
์ ๋ ฅ ํ์
์ ํ ์ดํ ํ์ n, ์ ํ ์ดํ ๊ฐ๊ฒฉ t, ํ ์ ํ์ ํ ์ ์๋ ์ต๋ ํฌ๋ฃจ ์ m, ํฌ๋ฃจ๊ฐ ๋๊ธฐ์ด์ ๋์ฐฉํ๋ ์๊ฐ์ ๋ชจ์ ๋ฐฐ์ด timetable์ด ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ค.
- 0 ๏ผ n โฆ 10
- 0 ๏ผ t โฆ 60
- 0 ๏ผ m โฆ 45
- timetable์ ์ต์ ๊ธธ์ด 1์ด๊ณ ์ต๋ ๊ธธ์ด 2000์ธ ๋ฐฐ์ด๋ก, ํ๋ฃจ ๋์ ํฌ๋ฃจ๊ฐ ๋๊ธฐ์ด์ ๋์ฐฉํ๋ ์๊ฐ์ด HH:MM ํ์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
- ํฌ๋ฃจ์ ๋์ฐฉ ์๊ฐ HH:MM์ 00:01์์ 23:59 ์ฌ์ด์ด๋ค.
์ถ๋ ฅ ํ์
์ฝ์ด ๋ฌด์ฌํ ์ ํ์ ํ๊ณ ์ฌ๋ฌด์ค๋ก ๊ฐ ์ ์๋ ์ ์ผ ๋ฆ์ ๋์ฐฉ ์๊ฐ์ ์ถ๋ ฅํ๋ค. ๋์ฐฉ ์๊ฐ์ HH:MM ํ์์ด๋ฉฐ, 00:00์์ 23:59 ์ฌ์ด์ ๊ฐ์ด ๋ ์ ์๋ค.
์ ์ถ๋ ฅ ์์
n | t | m | timetable | answer |
1 | 1 | 5 | ["08:00", "08:01", "08:02", "08:03"] | "09:00" |
2 | 10 | 2 | ["09:10", "09:09", "08:00"] | "09:09" |
2 | 1 | 2 | ["09:00", "09:00", "09:00", "09:00"] | "08:59" |
1 | 1 | 5 | ["00:01", "00:01", "00:01", "00:01", "00:01"] | "00:00" |
1 | 1 | 1 | ["23:59"] | "09:00" |
10 | 60 | 45 | ["23:59","23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59"] |
"18:00" |
ํ์ด
์ฒ์์ ๋ฌธ์ ๋ฅผ ์๋ชป ์ดํดํด์, ๋ชจ๋ ๋ฒ์ค๋ค์ ๋ํด ์ฝ์ด ํ ์ ์๋์ง๋ฅผ ๊ตฌํด์ ๊ทธ ์ค์ ๊ฐ์ฅ ๋ฆ์ ๋ฒ์ค๋ฅผ ์ฐพ์ผ๋ ค๊ณ ํ๋ค. ๊ทธ๋ฐ๋ฐ ์ฑ์ ์ ํด๋ณด๋ 5,4,24๋ฒ ํ ์คํธ์ผ์ด์ค๊ฐ ํ๋ ค์ ์ง๋ฌธํ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ๋ค.
์ง๋ฌธํ๊ธฐ์ ์ฌ๋ฌ ๊ธ ์ค์์, ์ด ๊ธ์ ๋ณด๊ณ ๋ด ์ ๊ทผ๋ฐฉ์์ด ์์ ํ ํ๋ ธ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์๋ค.
์ฝ์ด ๋ฌด์กฐ๊ฑด ๋ง์ง๋ง ๋ฒ์ค์ ํ๊ฒ ํด์ผํ๋ค! ๋ผ๋ ์๊ฐ์ผ๋ก ๋ฌธ์ ๋ฅผ ํ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
ํด๋น ์ง๋ฌธํ๊ธฐ ๊ธ์ ๋ณด๊ณ ํ์ด๋ฅผ ์์ ํ ๊ฒฐ๊ณผ, ๋ ์งง์ ์ฝ๋๋ก ์ ๋ต์ ์ป์ ์ ์์๋ค.
โํต์ฌโ ์,
์ฝ์ ์ ์ธํ๊ณ
๋ง์ง๋ง ๋ฒ์ค์ ํ ์ธ์์ด m๋ช ๋ณด๋ค ์์ผ๋ฉด, ์ฝ์ ๋ง์ง๋ง ๋ฒ์ค ์ถ๋ฐ ์๊ฐ์ ๋์ฐฉํ๋ฉด ๋๋ค.
ํ์ง๋ง ๋ง์ง๋ง ๋ฒ์ค์ ํ ์ธ์์ด m๋ช ์ด๋ฉด(๋ง์์ด๋ฉด), ์ฝ์ ๋ง์ง๋ง ๋ฒ์ค์ ๋ง์ง๋ง ํ์น๊ฐ๋ณด๋ค 1๋ถ ์ผ์ฐ ๋์ฐฉํ๋ฉด ๋๋ค.
์ฝ๋
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string minToStr(int min) {
int h = min/60;
int m = min%60;
string result = "";
if (h<10) result+="0";
result+=to_string(h);
result+=":";
if (m<10) result+="0";
result+=to_string(m);
return result;
}
string solution(int n, int t, int m, vector<string> timetable) {
string answer = "";
int answerM;
vector<int> timetableM;
for (auto item: timetable) {
int temp = 0;
temp += stoi(item.substr(0,2))*60;
temp += stoi(item.substr(3,2));
timetableM.push_back(temp);
}
sort(timetableM.begin(), timetableM.end());
int num = timetable.size();
int busT, peo;
int idx = 0;
for(int i=0;i<n;i++) {
busT = 540 + t*i;
peo = 0;
while(peo < m && idx < num && timetableM[idx] <= busT) {
idx++;
peo++;
}
}
if (peo < m) answerM = 540 + t*(n-1);
else answerM = timetableM[idx-1] -1;
answer = minToStr(answerM);
return answer;
}
๊ฒฐ๊ณผ
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++/ํ๋ก๊ทธ๋๋จธ์ค] ๋ถ๋ ์ฌ์ฉ์ (0) | 2021.12.29 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค/C++] ํ ํธ์ง (3) | 2021.12.08 |
[C++/ํ๋ก๊ทธ๋๋จธ์ค] ์ถ์ ํธ๋ํฝ (0) | 2021.11.17 |
[๋ฐฑ์ค/C++] 14906. ์ค๋ฌํผ (0) | 2021.11.03 |
[๋ฐฑ์ค/C++] 1013. Contact (0) | 2021.10.26 |