๋ฌธ์
https://programmers.co.kr/learn/courses/30/lessons/17678
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
์์ค์ฝ๋
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.PriorityQueue;
import java.util.stream.Collectors;
class Solution {
public String solution(int n, int t, int m, String[] timetable) {
List<String> busTimeTable = makeBusTimeTable(n, t);
String lastBusTime = busTimeTable.get(n-1);
PriorityQueue<String> crew = Arrays.stream(timetable)
.collect(Collectors.toCollection(PriorityQueue::new));
for(int i=0; i<n; ++i) {
String busTime = busTimeTable.get(i);
for(int j=0; j<((i < n-1)? m : (m-1)); ++j) {
if(crew.isEmpty()) return lastBusTime;
if(crew.peek().compareTo(busTime)>0) break;
crew.poll();
}
}
if(crew.isEmpty()) return lastBusTime;
String time = minusOneMin(crew.poll());
return (lastBusTime.compareTo(time)<0)? lastBusTime : time;
}
public List<String> makeBusTimeTable(int n, int t) {
List<String> busTimeTable = new LinkedList<>();
int h = 9, m = 0;
for(int i=0; i<n; ++i) {
busTimeTable.add(String.format("%02d:%02d", h, m));
if((m += t) >= 60) {
h++;
m -= 60;
}
}
return busTimeTable;
}
public String minusOneMin(String time) {
String[] tmp = time.split(":");
int h = Integer.parseInt(tmp[0]);
int m = Integer.parseInt(tmp[1]);
if(m > 0) {
m -= 1;
} else {
h -= 1;
m = 59;
}
return String.format("%02d:%02d", h, m);
}
}
ํ๊ณ
- ์นด์นด์ค๊ฐ ์ด๋ฐ ์๊ฐ ๋ฌธ์์ด ๋ฌธ์ ๋ฅผ ์ข์ํ๋ ๋ฏ.
- ์ฒ์์๋ ๋ฒ์ค ์๊ฐ t๋ง๋ค ๋ฌด์กฐ๊ฑด ์์ฉ์ธ์ m๋งํผ ํฌ๋ฃจ๋ค์ ๋นผ์คฌ๋๋ฐ, ๋ฒ์ค ์๊ฐ๋ง๋ค ๋์ฐฉํด ์๋ ํฌ๋ฃจ์ ์๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ฒ์ค ์๊ฐํ๋ฅผ ๋ง๋ค์ด์ ํด๋น ์๊ฐ์ ์ค ์์๋ ์ ๋งํผ์ฉ ๋นผ์ค.
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด์ญ] ์ง๊ฒ๋ค๋ฆฌ ๊ฑด๋๊ธฐ (0) | 2020.04.01 |
---|---|
[2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด์ญ] ํธํ ๋ฐฉ ๋ฐฐ์ (0) | 2020.04.01 |
[2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ] ๋ด์ค ํด๋ฌ์คํฐ๋ง (0) | 2020.03.16 |
[2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ] ์ถ์ ํธ๋ํฝ (0) | 2020.03.16 |
[2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ] ํ์ผ๋ช ์ ๋ ฌ (0) | 2020.03.05 |