ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 56번
    JAVA/leetcode 2020. 8. 25. 16:04
    728x90
    728x90
    package algorithmStudy;
    
    public class Test56 {
    
    	public static void main(String[] args) {
    		Solution56 sol = new Solution56();
    		
    		int[][] input = {{1, 3}, {2, 6}, {8, 10}, {15, 18}, {10, 12}, {20,23}};
    		int[][] output = sol.merge(input);
    		for(int i = 0; i < output.length; i++)
    		{
    			System.out.println(output[i][0] + ", " + output[i][1]);
    		}
    		
    		System.out.println();
    		
    		int[][] input2 = {{1, 4}, {2, 3}};
    		int[][] output2 = sol.merge(input2);
    		for(int i = 0; i < output2.length; i++)
    		{
    			System.out.println(output2[i][0] + ", " + output2[i][1]);
    		}
    	}
    
    }
    
    class Solution56 {
    	public int[][] merge(int[][] intervals) {
            if(intervals == null) return null;
    
            int[][] temp = null;
            int[] curr = new int[2];
            int[] next = new int[2];
            for(int i = 0; i < intervals.length - 1; i++)
            {
            	curr = intervals[i];
            	for(int j = i + 1; j < intervals.length; j++)
                {
            		next = intervals[j];
            		
            		if((curr[0] >= next[0] && curr[0] <= next[1]) || (curr[1] >= next[0] && curr[1] <= next[1])
            			|| (curr[0] <= next[0] && curr[1] >= next[1]) || (next[0] <= curr[0] && next[1] >= curr[1]))
            		{
            			int startNum = curr[0] <= next[0] ? curr[0] : next[0];
            			int endNum = curr[1] >= next[1] ? curr[1] : next[1];
            			temp = new int[intervals.length-1][2];
            			
            			temp[0][0] = startNum;
            			temp[0][1] = endNum;
            			
            			int index = 1;
            			for(int k = 0; k < intervals.length; k++)
            			{
            				if(k != i && k != j)
            				{
            					temp[index] = intervals[k];
            					index++;
            				}
            			}
            			intervals = temp;
            			i--;
            			break;
            		}
            		else {
            			temp = intervals;
            		}
                }
            }
            
            return temp;
        }
    }
    728x90
    728x90

    'JAVA > leetcode' 카테고리의 다른 글

    49번  (0) 2020.08.24
Designed by Tistory.