์ฝ๋
class Solution {
public int[][] merge(int[][] intervals) {
// ์์ ์๊ฐ ๊ธฐ์ค์ผ๋ก ๊ฐ๊ฒฉ ์ ๋ ฌ
Arrays.sort(intervals, (a, b) -> Integer.compare(a[0], b[0]));
// ๋ณํฉ์ ์ํ ๋ฆฌ์คํธ ์์ฑ
List<int[]> merged = new ArrayList<>();
// ์ฒซ ๋ฒ์งธ ๊ฐ๊ฒฉ ๋ณํฉ ๋ฆฌ์คํธ์ ์ถ๊ฐ
int[] currentInterval = intervals[0];
merged.add(currentInterval);
for (int[] interval : intervals) {
int currentEnd = currentInterval[1];
int nextStart = interval[0];
int nextEnd = interval[1];
// ๊ฒน์น๋ฉด ์ต๋๊ฐ ๊ธฐ์ค์ผ๋ก ๋ณํฉ
if (currentEnd >= nextStart) {
currentInterval[1] = Math.max(currentEnd, nextEnd);
} else { // ์๊ฒน์น๋ฉด ๋ค์ ๊ฐ๊ฒฉ ์ถ๊ฐ
currentInterval = interval;
merged.add(currentInterval);
}
}
return merged.toArray(new int[merged.size()][]);
}
}
Java
๋ณต์ฌ
๋ฌธ์ ํด๊ฒฐ ์์ด๋์ด
currentInterval ๋ฅผ ํ์ฉํด์ ํ์ฌ ๊ฐ๊ฒฉ๊ณผ ๋ค์ ๊ฐ๊ฒฉ์ ๋น๊ตํ๊ณ , ์กฐ๊ฑด์ ๋ง๋ ๊ฒฝ์ฐ๋ง ์ต๋ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ณํฉํ๋ฉด ๋๋ค.