http://acm.uva.es/p/v1/102.html
쉬운 문제지만, 고생을 했다. 이유인즉, 나의 의욕 과잉 때문...
너 무 간단한 문제라 생각하여, 오히려 복잡하게 코드를 작성하다 완전히 잘못된 사례가 되었다. 게다가 속출하는 컴파일 에러로 인해 신경질도 상당히 발생했다... 어쨌든 이제 컴파일 에러는 해방이 되었다. online judge 컴퓨터가 g++ 2.95를 사용하여 컴파일한다는 사실을 알았고, 이는 DEV-C++ 4 버전을 사용하여 쉽게 문제를 발견할 수 있기 때문이다.
g++ 2.95는 <limit>를 인식하지 않는다는 사실을 그래서 5분 만에 알아내서 컴파일 문제를 해결했다.
그 다음 문제는 문제를 대강 보는 버릇... 동일한 최소 이동 값이 나왔을 때, 알파벳 순서대로 있는 것을 우선적으로 찍으라는 문구를 별거 아니라 생각하고 대충 넘어가 버렸다. 예를 들어 최소 회수로 옮기는 경우가 2가지 나왔을 때를 생각하자. 한 경우는 박스에 blue , green , clear. 그리고 다른 경우는 blue , clear , green 이 있다고 하자. 이때는 후자를 결과로 찍어서 BCG가 되어야 한다. 알파벳 순서가 정렬되어 있는 것을 우선시해야 하기 때문이다. 마찬가지로 CBG는 CGB보다 우선되고, GCB는 GBC보다 우선시된다. 이런 테스트 케이스를 만들기가 의외로 어렵기 때문에 문제를 나처럼 정확히 파악 못했을 경우 발견하기 어렵다.
암튼, 산넘어 산이란 말이 이럴 때 쓰는 듯하다. 막막한 기분이다...
'코드' 카테고리의 다른 글
ACM 105, The Skyline Problem (0) | 2006.01.24 |
---|---|
ACM 10315, Poker Hands (0) | 2006.01.20 |
ACM 10038, Jolly Jumpers (0) | 2006.01.11 |
ACM 104, Arbitrage (0) | 2006.01.10 |
ACM 10142, Australian Voting (0) | 2006.01.07 |