페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#3150

음식 저장하기 1s 128MB

문제

미식가 J는 홈쇼핑을 하다가 음식이 눈에 보이면 무조건 주문한다. 

J의 냉장고는 요리사들이 자주 쓰는 것처럼 아래부터 위로 쌓아놓는 구조이다. 

J는 집에 음식이 배달되어 오면 일단은 먼저 배달된 순서대로 (아래부터 위로) 냉장고에 쌓아놓는다. 

그리고 특정한 음식을 먹고 싶을 때 냉장고에서 꺼내서 먹는다.

 

문제는, J는 어떤 음식을 먹으면, 그 음식보다 값 싼 음식을 먹지 않는다는 것이다. 

즉, J는 무조건 가격이 낮은 음식부터 높은 순서대로만 먹는다. 

또 다른 문제는, J가 특정 음식을 먹고 싶을 때, 그 음식 위에 쌓아놓은 음식을 다 꺼내놓고, 꺼내서 먹고, 

다시 쌓아놓은 음식을 넣어놓는 귀찮은 상황이 계속해서 찾아 온다는 것이다.  

그래서 J는 냉장고에 있는 음식 중에서 제일 위에 있는 음식만 빼 먹기로 했다.

 

당연히 하나의 냉장고로는 제일 위의 음식만 빼 먹으면서 가격 순위대로 먹는 것이 불가능 하기 때문에, 여러 개의 냉장고가 필요하다.

 

음식을 주문한 순서와 가격 순위가 주어질 때, 필요한 최소 냉장고 개수를 구하여라. 


입력

음식의 개수인 n이 첫 줄에 주어진다. 다음 n줄엔, 음식의 주문번호(4자리 고유번호)와 가격 순위가 주어진다.

같은 주문번호나 가격 순위가 입력되는 경우는 없다. 

첫 줄에 입력된 음식이 시간순으로 가장 먼저 배달된 음식이며, 다음 줄로 갈수록 늦게 배달된 음식이다. 

n은 10,000 미만이다. 가격 순위 역시 0이상 10,000미만이다.


출력

J가 가격 순서대로 먹으면서도 냉장고 위에서만 꺼내먹는 경우 필요한 냉장고의 최소 개수를 출력한다.

예제 #1

5

0001 4
0002 3
0003 5
0004 1
0005 2
2

예제 #2

10

0000 1
0001 6
0002 8
0003 2
0004 0
0005 5
0006 3
0007 7
0008 9
0009 4
5

출처

Penn State CodePSU 2018
로그인해야 코드를 작성할 수 있어요.