지하철에서 찌글찌글하게 해보다가 일단 정렬을 해보자는 식으로 나가보았습니다.
얼추 되겠다 싶었는데, 아래의 과정 5에 해당하는 부분을 생각해내기가 좀 힘들었습니다.
<과정>
1. 각각 입력된 종이의 가로 세로 길이 중 작은 값을 앞에 놓고, 큰 값을 뒤에 놓는다.
2. 1에서 얻어진 결과 중 앞의 값을 기준으로 모든 종이를 오름차순 정렬한다.
3. 2에서 얻어진 결과를 기준으로 현재의 종이와 앞의 종이를 비교하여, 앞의 종이를 현재의 종이에 올려놓을 수 있는 크기인지 판단한다. (판단 기준은 1에서 얻어진 큰 값)
4. 앞의 종이를 현재의 종이 위에 올려놓을 수 있다면 카운트를 증가시킨다.
5. 4의 경우에, '앞의 종이에 올려놓을 수 있는 종이의 장수'가 '현재 종이에 올려놓을 수 있는 종이의 장수' 보다 작으면 카운트를 증가시키지 않는다.
(' 현재의 종이'의 '앞의 종이'가 '현재의 종이'위에 올려놓을 수 있다고 하더라도, '앞의 종이'에 올려놓을 수 있는 종이가 '현재의 종이'위에 올려놓을 수 있는 종이보다 작다고 하면, '앞의 종이'를 ‘현재의 종이’에 올려놓는 것은 최고로 많이 쌓을 수 있는 종이의 기준에 미달하게 된다.)
6. 이렇게 구해진 각각의 종이에 올려놓을 수 있는 종이의 장수 중 가장 큰 값을 출력한다.
1. 각각 입력된 종이의 가로 세로 길이 중 작은 값을 앞에 놓고, 큰 값을 뒤에 놓는다.
2. 1에서 얻어진 결과 중 앞의 값을 기준으로 모든 종이를 오름차순 정렬한다.
3. 2에서 얻어진 결과를 기준으로 현재의 종이와 앞의 종이를 비교하여, 앞의 종이를 현재의 종이에 올려놓을 수 있는 크기인지 판단한다. (판단 기준은 1에서 얻어진 큰 값)
4. 앞의 종이를 현재의 종이 위에 올려놓을 수 있다면 카운트를 증가시킨다.
5. 4의 경우에, '앞의 종이에 올려놓을 수 있는 종이의 장수'가 '현재 종이에 올려놓을 수 있는 종이의 장수' 보다 작으면 카운트를 증가시키지 않는다.
(' 현재의 종이'의 '앞의 종이'가 '현재의 종이'위에 올려놓을 수 있다고 하더라도, '앞의 종이'에 올려놓을 수 있는 종이가 '현재의 종이'위에 올려놓을 수 있는 종이보다 작다고 하면, '앞의 종이'를 ‘현재의 종이’에 올려놓는 것은 최고로 많이 쌓을 수 있는 종이의 기준에 미달하게 된다.)
6. 이렇게 구해진 각각의 종이에 올려놓을 수 있는 종이의 장수 중 가장 큰 값을 출력한다.
글로 설명하려니 뭔가가 좀 이상합니다.
깔끔하게 계산 과정을 표로 정리해보았습니다.
표로 보시는게 이해가 빠를겁니다.

좌우당간 보고서도 간단하게 쓰고 끝내렵니다.
다음에는 또 어떤 어려운 문제가 나올지 벌써 부터 걱정이네요.
수정사항
중간쯤에 보면 if(array[i][0]<array[j][0]) 이 부분이 있는데
if(array[i][0]<array[j][0] || (array[i][0]==array[j][0] && array[i][1]<array[j][1]))
위의 것으로 바꿔줘야 합니다.
김철호PAPER.zip













