PC/UVa ID : 110305/10188
이 포스트를 만든 목적
- 생각 절차, 푼 방법, 고민거리 등을 기록하기 위해서 만들었다.
이 포스트의 준비물
- firefox4 b8
- eclipse 3.6.1 + vrapper
- lua 5.1.4
참조 문헌
- 스티븐 스키에나, 미구엘 레비야 저. Programming Challenges: 알고리즘 트레이닝 북. 서환수 역.
Springer. 한빛미디어 초판 2쇄 2004.12.05. (문제 21, Automated Judge Script, page 102)
참고 링크
- http://www.lua.org/manual/5.1/manual.html - 루아 메뉴얼, 스트링 찾을려고
- http://online-judge.uva.es/p/v101/10188.html - 원문
문제
- 자동 심사를 진행하기 위해서 제출된 풀이를 심사하는 자동화된 심사 스크립트를 작성하라.
- 심사 방법은 다음과 같다
1. 제출된 프로그램에 의한 출력 결과가 정답과 완벽하게 일치하는가?
일치 한다면 Accepted 로 심사한다
2. 제출된 프로그램에 의한 출력 결과중 정답에서 숫자와 숫자가 나온 순번만 일치 하는가?
일치 한다면, Presentaion Error 로 심사한다
3. 1번과 2번이 아닐경우, Wrong Answer 로 심사한다
- 프로그램은 먼저 몇 라인의 정답을 받을 것인지 양의 정수 100 미만의 수 N을 입력 받는다.
- N 라인 만큼 정답을 입력 받는다.
- 3번까지 되었다면, 5번으로 넘어 간다.
- 심사를 거칠 프로그램이 출력할 결과를 몇라인을 받을 건지 양의 정수 100 미만의 수 M을 입력 받는다.
- M 라인 만큼 결과를 입력 받는다.
- 6번까지 되었다면, 자동 심사 스크립트(Automated Judge Script)가 출력할 결과를 출력한다.
- 결과를 출력 할 때 printf("Run #%d: %s", 입력 세트, 심사 결과) 로 출력 한다.
주의 사항
- Presentaion Error 의 경우, 숫자의 위치가 고려 된다.
- 예를 들어 정답 "15 0" 과 프로그램의 결과 "150" 를 심사하면, Presentaion Error 로 간주 한다.
하지만 "15 0" 과 "1 0" 은 Wrong Answer 로 간주한다.
맛보기 코드 - 이 코드는 루아로 작성 되었다.
맛보기 사진
- 난 문제 이해하는데 시간이 꽤 걸렸다.
- 문제만 20번 읽은듯
- lua를 사용해서 문자열 정규표현식 사용하기 쉬워, 어려운게 없었다.
- C/C++ 에선 숫자 누적 방법에 대해서 좀 신경써야 할듯
- 문제가 이해가 안가면, 출력된 결과를 이용해 문제를 이해도 되겠다.
- 출력 결과물은 원문 링크를 보는게 제일 도움 된다.
- 1 byte 문자열에서 숫자란 문자 between('0' , '9') 이므로 숫자를 찾는건 어렵지 않다.
- 정답 라인과 프로그램 출력 라인, 각각을 한 라인(table.concat)으로 만들어서, 반복문이 3개 밖에 없다.
- 이 부분은 답지를 보고, 배웠(?)다.
- 루아와 C/C++ 의 프로그래밍 차이점 중 배정문을 들수 있겠다.
- 루아는 타입이 없어, 배정문 사용이 무척 자유롭다. 24, 27 라인 :)
- 맛보기 사진에 Run #1 로 되어 있는데, 이 숫자중 #1 는 증가해야 된다. :)
- 코드는 고쳤으나, 사진은 고치기 어려워 패스
:wq
'책 정리 > Programming Challenges : 알고리즘 트래이닝 북' 카테고리의 다른 글
문제 26, 팬 케이크, Stacks of Flapjacks, PC/UVa ID : 110402/120 (0) | 2011.02.01 |
---|---|
문제 25, 비토와 친척들(Vito's Family), PC/UVa ID : 110401/10041 (0) | 2011.01.30 |
문제 24, Fmt, PC/UVa ID : 110308/848 (0) | 2011.01.30 |
문제 23, 더플릿, Doublets, PC/UVa ID : 110307/10150 (2) | 2011.01.22 |
문제 22, 파일 조각, File Fragmentation, PC/UVa ID : 110306/10132 (1) | 2011.01.08 |
문제 20, 암호 깨기2, Crypt Kicker2, PC/UVa ID : 110304/850 (0) | 2011.01.04 |
문제 19, 공통된 변경 문자열, Common Permutation, PC/UVa ID : 110303/10252 (0) | 2010.12.31 |
문제 18, 월도르프를 찾아라, Where's Waldorf? PC/UVa ID : 110302/10010 (0) | 2010.12.31 |
문제 17, WERTYU, PC/UVa ID : 110301/10082 (0) | 2010.12.28 |
문제 16, 야찌(Yahtzee) (2158) | 2010.12.28 |
최근댓글