ํฐ์คํ ๋ฆฌ ๋ทฐ
https://programmers.co.kr/learn/courses/30/lessons/17678
[๋ฌธ์ ํ์ด]
์ ํ ๋ฒ์ค๋ฅผ nํ ์ดํํ๋ฉฐ, ๋๊ธฐ์ค์ ์๋ ํ์น ๊ฐ๋ฅํ ์ฌ๋์ ์ฐจ๋ก๋๋ก ํ์๋๋ค.
๋ง์ง๋ง ์ ํ๋ฒ์ค๊ฐ ์ดํ๋ ๋, ๋๊ธฐ์ค์ด m๋ณด๋ค ์์ผ๋ฉด, ๋ง์ง๋ง ์ ํ ์๊ฐ์ answer์ ์ ์ฅํฉ๋๋ค.
๋ํ, ๋๊ธฐ์ค์ด m๋ณด๋ค ํฌ๋ค๋ฉด, ๋๊ธฐ์ค์ ๋ง์ง๋ง ์ฌ๋์ ์๊ฐ์์ 1๋ถ์ ๋บ ์๊ฐ์ ์ ์ฅํฉ๋๋ค.
- ์ฐ์ ๋๊ธฐ์ค์ ์๊ฐ์์ผ๋ก ์ ๋ ฌํฉ๋๋ค.
- timetable[]์ ์๊ฐ์ int ํ์ผ๋ก ์๊ฐ์ ๋ถ๋จ์๋ก ๋ณํํ์ฌ intTimeTable[]์ ์ ์ฅํฉ๋๋ค.
: ์์ ์๊ฐ time = 540 (9:00)
- ์ ํ๋ฒ์ค์ ์๊ฐ time์ t๋งํผ ๋ํด ๊ฐฑ์ ํ๋ฉฐ time ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๋๊ธฐ์๊ฐ์ ์๋ ์ฌ๋๋ค์ ์ต๋ m๋งํผ ํ์๋๋ค.
- ๋ง์ง๋ง ์ ํ ๋ฒ์ค ์๊ฐ์ด ๋์๋, last ๋ณ์์ ๋ง์ง๋ง ๋๊ธฐ์ค ๊ธธ์ด๋ฅผ ์ ์ฅํฉ๋๋ค.
- ๋ง์ฝ last < m ์ด๋ฉด ๋ง์ง๋ง ์ ํ์๊ฐ์ answer์ ์ ์ฅํ๊ณ , last <= m ์ด๋ผ๋ฉด ๋๊ธฐ์ค ๋ง์ง๋ง ์ฌ๋์ ์๊ฐ์์ 1๋ถ ๋บ ๊ฐ์ ์ ์ฅํฉ๋๋ค.
[์ ๋ต ์ฝ๋]
import java.util.*;
class Solution {
// nํ t๋ถ ๊ฐ๊ฒฉ์ผ๋ก ์ญ์ ๋์ฐฉํจ
public static int[] intTimeTable;
public String solution(int n, int t, int m, String[] timetable) {
String answer = "";
intTimeTable = new int[timetable.length];
Arrays.sort(timetable);
// intํ ์๊ฐ์ผ๋ก ๋ณํ
for(int i=0;i<timetable.length;i++) {
String[] str = timetable[i].split(":");
intTimeTable[i] = Integer.parseInt(str[0])*60 + Integer.parseInt(str[1]);
}
int index = 0;
int time = 9*60; // ์
ํ ์๊ฐ
int last = 0; // ๋ง์ง๋ง ๋๊ธฐ์ค ๊ธธ์ด
// ๋ง์ง๋ง ๋ฒ์ค ๋นผ๊ณ ์ ๋ถ ํ์
for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) {
// ๋์ด์ ์ฌ๋์ด ์์
if(index > timetable.length - 1) {
break;
}
if(time >= intTimeTable[index]) {
index++;
// ๋ง์ง๋ง ์
ํ
if(i == n-1) {
last++;
}
}
}
time += t;
}
time -= t;
if(last < m) {
answer = stringTime(time);
} else {
answer = stringTime(intTimeTable[index - 1] - 1);
}
return answer;
}
public static String stringTime(int intTime) {
String str = "";
int hour = intTime/60;
if(hour < 10) {
str += "0" + hour;
} else {
str += hour;
}
str += ":";
int minute = intTime%60;
if(minute < 10) {
str += "0" + minute;
} else {
str += minute;
}
return str;
}
}
/*
์ฐจ๊ฐ ์ดํ์ 10๋ฒ ํ๋ฉด
์ฐจ๋ก๋ก ์ฌ๋์ ํ์
if) ๋ง์ง๋ง ์ฐจ ๋๊ธฐ์ค > m
-> ๋๊ธฐ์ค ๋ง์ง๋ง ์ฌ๋ -1
else)
-> ๋ง์ง๋ง ์ฐจ ์๊ฐ
*/
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ํ๋ก๊ทธ๋๋จธ์ค - ์๋ฌผ์ ์ ์ด์ (0) | 2022.06.13 |
---|---|
[Java] ํ๋ก๊ทธ๋๋จธ์ค - ๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์ (0) | 2022.06.05 |
[Java] ํ๋ก๊ทธ๋๋จธ์ค - ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด (0) | 2022.06.05 |
[Java] ํ๋ก๊ทธ๋๋จธ์ค - k์ง์์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ (0) | 2022.06.05 |
[Java] ํ๋ก๊ทธ๋๋จธ์ค - ๋ฉ๋ด ๋ฆฌ๋ด์ผ (0) | 2022.05.29 |
- Total
- Today
- Yesterday
- fp
- ์ฝ๋ฉํ ์คํธ
- ์ ์ญ ๋ณ์
- ํ๋กํ ์ฝ
- ๋ ์์ปฌ ํ๊ฒฝ
- ๋ฐฑ์ค
- ํ๋กํผํฐ
- ํ๋ก๊ทธ๋๋จธ์ค
- ์๋ฐ์คํฌ๋ฆฝํธ
- TDD
- ์ด๋ถํ์
- ๋คํธ์ํฌ
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- ํฌํฌ์ธํฐ
- ์นด์นด์ค ์ธํด
- JavaScript
- map
- ์ด์์ฒด์
- 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด
- ๋ฐฑ์ค javascript
- git
- Baekjoon
- http
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
- ์๋ฐ
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive
- ๋ฐฑ์ค node.js
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- ๋์์ธ ํจํด
- ์๊ณ ๋ฆฌ์ฆ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |