๐Ÿฅž BE
home

56_Merge Intervals

๋‹ด๋‹น์ž
์™„๋ฃŒ ์—ฌ๋ถ€
Solved
์š”์•ฝ
๋‚ ์งœ
2024/08/14
ํƒœ๊ทธ
์ •๋ ฌ
๋‚œ์ด๋„
Medium
์ถœ์ฒ˜
LeetCode

์ฝ”๋“œ

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 ๋ฅผ ํ™œ์šฉํ•ด์„œ ํ˜„์žฌ ๊ฐ„๊ฒฉ๊ณผ ๋‹ค์Œ ๊ฐ„๊ฒฉ์„ ๋น„๊ตํ•˜๊ณ , ์กฐ๊ฑด์— ๋งž๋Š” ๊ฒฝ์šฐ๋งŒ ์ตœ๋Œ€ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๋ณ‘ํ•ฉํ•˜๋ฉด ๋œ๋‹ค.