알고리즘, 자료구조/알고리즘

냉장고 문제

바로이순간 2013. 6. 2. 14:42

 프로그램 명: refrigerator

우리나라 아이스크림 공장은 여러가지 종류의 아이스크림을 생산하고 있다. 

그런데 공장에서생산된 아이스크림의 형태를 그대로 보존하기 위해서는 

일정한 온도를 유지해 주어야만 한다. 아이스크림은 종류에 따라 유지해야할 

온도의 최소값과 최대값이 정해져 있다. 즉 , A 라는 아이스크림의 유지 온도

가 -20 oc ~ 12 oc라면, 냉장고의 온도가 -20 oc에서 -12oc 사이일 때만 

아이스크림은 형태가 변형되지 않고 보관될 수 있다. 냉장고의 온도는 고정된 

값을 정할 수 있으며 하나의 냉장고에는 여러 종류의 아이스크림이 들어 갈 수 

있다.


이 아이스크림 공장에서 생산되는 여러 종류의 아이스크림을 모두 보관 할 수 

있도록 냉장고를 준비할 때 사용하는 냉장고의 수가 최소가 되도록 각 냉장고

의 온도를 결정하는 프로그램을 작성하라.

예를들어 유지온도가 각각 -20 oc~ -15 oc, -14 oc~ -5 oc , -18 oc~ -13 oc,

 -5 oc~ -3 oc인 네 개의 아이스크림이 있다고 하면 , -15 oc도 맞추어 놓은 

냉장고에 첫 번째와 세 번째 아이스크림을 넣고, -5 oc로 맞추어 놓은 냉장고에 

두 번째와 네 번째 아이스크림을 넣으면 두 대의 냉장고로 모든 아이스크림을 

보관할 수 있다. 물론 첫 번째 냉장고는 -15 oc대신 -16 oc혹은 -18 oc로 

맞추어도 상관없다.


입력 형식


첫 째 줄에 아이스크림 종류의 개수 N( 1 <= N <= 100000 )이 주어지며, 

두 번째 줄부터 N+1 번째 줄까지는 각 아이스크림이 그대로 보존되는 최저 

보관 온도( -30000 <= Xi <= 30000 ) 와 최고 보관온도 ( -30000 <= Yi 

<= 30000 ) 가 주어진다. 모든 온도는 정수이다.


출력 형식


필요한 냉장고의 최소 개수 k 를 출력한다.


입출력 예


입력


4

-20 -15

-14 -5

-18 -13

-5 -3


출력


2

이문제 일차원배열로 sort함수를 쓰고 하나 sort없이 정렬로 하나 

총두개의 방법으로 풀어주세요.. 부탁드립니당


[1] 낮은 온도를 중심으로 정렬을 합니다.


-20 -15   처음에 나오는 온도범위중에서 가장 낮은 온도를 -20 가장 높은 온도를 -15로 합니다.

-18 -13    가장낮은 온도는 -18로 올라가고 가장 높은 온도는 -15로 유지 (항상 내려갈 수만 있습)


-14 -5     가장낮은 온도가 -18과 -15사이에 있지 않습니다. 해결이 안됩니다.

               다시 -14 -5로 시작합니다. (재출발)

-5  -3       -5 -5가 되어서 해결이 되었습니다.


위와 같이 해결을 하면 되겠습니다.

     min1 max1

     min2 max2

정렬을 해 두었기 때문에 min1<=mini2 입니다. 

위와 같이 내려 갈때 min2<=max1 라면 계속 현재 온도범위에서 해결가능합니다.

    min2  maxx  여기서 maxx는 max1, max2 중에서 낮은 값이 됩니다.


이렇게 새로 바뀐 값을 가지고 다시 다음 온도 범위를 가지고 따져봅니다.

'알고리즘, 자료구조 > 알고리즘' 카테고리의 다른 글

2d bin packing  (0) 2014.02.26
하노이탑 문제  (0) 2013.10.05
array searching  (0) 2012.01.14
정수의 나눗셈을 곱셈으로 바꾸기  (0) 2011.12.20
아주 큰수의 나눗셈 알고리즘  (0) 2011.12.10