PC/UVa ID : 110102/10189, 인기도 : A, 성공률 : 높음, 레벨 : 1]
관련링크 : http://www.programming-challenges.com/pg.php?page=downloadproblem&probid=110102&format=html
말 그대로 지뢰 찾기를 만들라는 것인데, * 가 지뢰고 . 가 안전 지대라 했을 때, 4 x 4 의 지뢰밭이 다음과 같다고 하자. 그러면 오른쪽 처럼 출력되게 하는 프로그램을 만들라 가 이번 문제의 목표이다.
입력
첫번째로 지뢰 밭의 크기를 가로 row X 세로 col 을 받되, 각 길이는 0 ~ 100 사이 값이여야 한다. 또한 0 0 이 입력 되었을 경우 프로그램은 종료되어야 한다.
출력
각 지뢰밭에 대해 Field #x: 라 적혀있는 메세지를 출력 하고, x 필드는 1번부터 시작해 사용자가 끝낼때까지 1씩 올라 간다. 자세한 것은 예제를 보는게 좋을 것이다.
예제
입력
4 4
*....
....
.*..
....
Field #1:
*100
2210
1*10
3 5
**...
.....
.*...
Field #2:
**100
33200
1*100
0 0
정상 종료
총평
루아 입출력 함수 사용법 익히는데 많은 시간이 걸렸다. 여담으론 입력 스트림을 날려버리는 함수가 있으면 매우 좋겠다란 생각을 하게 된다. 스트림을 제어 할 수 있는 언어, 이런 언어가 참 유용하지 않을까란 생각도 한다. 이번 문제에 대해서 이야기 하자면, if 를 쓰지 않고도 충분히 처리 할 수 있다면, 안쓰는게 훨씬 좋지 않을까 한다. 왜냐하면, 코드 분량이 더 늘어나고, 논리적으로 생각 해야 되는 것도 더 늘어나기 때문이다.
최초 if 로 양 사이드 끝이라면, 상하 사이드 끝이라면, 이라는 식으로 의사코드를 짜다가, 코드가 너무 더러워 져서, if 없이 짤 수 있지 않을까? 란 생각을 했다. 다음과 같은 알고리즘을 생각하고, 루아로 만들게 된 것이다.
여담
회사 다니면서, 책 보는 량이 무척 줄었으므로, 포스팅도 하루에 한개씩만... ㅋ
문제 풀이 소스
'책 정리 > Programming Challenges : 알고리즘 트래이닝 북' 카테고리의 다른 글
문제 10, 포커 패 (Poker Hands) (191) | 2009.11.06 |
---|---|
문제 9, 유쾌한 점퍼 (Jully Jumpers) (191) | 2009.11.01 |
문제 8, 호주식 투표법 (Australian Voting) (191) | 2009.11.01 |
문제 7 : 체크 확인 - Check the Check (759) | 2009.10.28 |
문제 6 : 인터프리터(Interpreter) (550) | 2009.10.22 |
문제 5 : 그래픽 편집기(Graphical Editor) (358) | 2009.10.13 |
문제 4 : LCD 디스플레이(LCD Display) (3) | 2009.03.01 |
문제 3 : 여행 ( The Trip ) (1) | 2009.02.19 |
문제 1 : 3n + 1 문제 ( The 3n+1 Problem ) (0) | 2009.02.15 |
알고리즘 트레이닝 북 (PROGRAMMING CHALLENGES) (0) | 2009.02.15 |
최근댓글