블로그는 귀차니즘

First Sensation
  • 공지
  • 지역로그
  • 태그
  • 방명록

Algorithm Traning Book - 두 번째 문제

Algorithm 2008/06/09 23:29 귀차니스트

  음 뭐 책을 사놓고 도통 보지 않는 것 같아 오늘 야근 하고 돌아온 김에 잠시 봤는데 시간이 없어 많은 것을 생각하는 문제는 선택하지 못하고 아주 간단한 문제를 선택해봤습니다. 아무래도 첫 술부터 배부를 수는 없듯이 차근차근 있는 문제 그냥 연습한다 치고 하나씩 풀어보기로 했습니다.
  문제의 이름은 Mine Sweeper네요. 대충 입력, 출력의 예와 코드 는 다음과 같습니다.

입력

4 4
*...
....
.*..
....

출력
*100
2210
1*10
1110

MineSweeper.cpp (Language : cpp)
  1. #include <iostream>
  2.  
  3. int Width, Height;
  4. char MineField[100][100];
  5.  
  6. int GetField(int col, int row)
  7. {
  8.     if( (0 <= col && col < Height) &&
  9.         (0 <= row && row < Width )) {
  10.  
  11.         return (MineField[col][row] == '*' ? 1 : 0);
  12.     }
  13.  
  14.     return 0;
  15. }
  16.  
  17. char Calculate(int col, int row)
  18. {
  19.     if( GetField(col, row) )
  20.         return '*';
  21.  
  22.     int Count = 0;
  23.     Count += GetField( col - 1, row - 1 );
  24.     Count += GetField( col - 1, row );
  25.     Count += GetField( col - 1, row + 1 );
  26.     Count += GetField( col, row - 1 );
  27.     Count += GetField( col, row + 1 );
  28.     Count += GetField( col + 1, row - 1 );
  29.     Count += GetField( col + 1, row );
  30.     Count += GetField( col + 1, row + 1 );
  31.    
  32.     return '0' + Count;
  33. }
  34.  
  35. int main( int argc, char **argv )
  36. {
  37.     while( true )   {
  38.         std::cin >> Width >> Height;
  39.  
  40.         if( Width == 0 && Height == 0 )
  41.             break;
  42.  
  43.         for( int i = 0; i < Height; ++i )   {
  44.             for( int j = 0; j < Width; ++j )    {
  45.                
  46.                 std::cin >> MineField[i][j];
  47.             }
  48.         }
  49.  
  50.         for( int i = 0; i < Height; ++i )   {
  51.             for( int j = 0; j < Width; ++j )    {
  52.                
  53.                 std::cout << Calculate(i, j);
  54.             }
  55.  
  56.             std::cout << std::endl;
  57.         }
  58.     }
  59.  
  60.     return 0;
  61. }


  복잡한 문제는 아니죠^^? 그냥 아주 간단하길래 대충 생각하고 대충 풀었습니다. 코드가 즈질 이군요 ㅎㅎ
계속해서 한 문제씩 차근차근 풀어봐야 겠습니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

"Algorithm" 분류의 다른 글

Algorithm Traning Book - 다섯번째 문제 (0)2008/06/15
Algorithm Traning Book - 세 번째 문제 (0)2008/06/10
3n+1 Problem (0)2008/02/17
The Blocks Problem (0)2008/02/17
Maximum Sum (0)2008/02/17
2008/06/09 23:29 2008/06/09 23:29
TAG Mine Sweeper, 알고리즘 트레이닝
받은 트랙백이 없고, 댓글이 없습니다.

트랙백 주소 :: http://www.filewiki.net/tc/trackback/75

댓글을 달아 주세요

◀ 이전페이지 1 ... 41 42 43 44 45 46 47 48 49 ... 118 다음페이지 ▶

블로그 이미지
First Sensation 귀차니스트
rss
  • 관리자
  • 글쓰기

카테고리

  • 전체 (118)
    • Computer (3)
    • Language (14)
    • Reverse Engineering (1)
    • Algorithm (9)
    • TopCoder (3)
    • Library (2)
    • Programming (21)
    • Programming Tip (9)
    • PSP-Programming (10)
    • Program (5)
    • Small Talk (33)
    • Document (4)
    • OS Develope (4)

최근에 올라온 글

  • Script Interpreter - b....
  • VirtualHttpServer - 가.... (2)
  • 음.. 여러가지 일이 있.... (2)
  • 어후.. 드디어 인터럽트....
  • Kernel Image에 어이없....

최근에 달린 댓글

  • 헠 ㅋ 다음에도 들러주세용 ㅋㅋ. 귀차니스트 03/09
  • ㅎㅎ RSS로 첨 온 글이네.ㅋ. 당구리 02/22
  • 음.. 한글화 파일 0.5 버젼은.... 귀차니스트 02/22
  • 관리자만 볼 수 있는 댓글입.... 비밀방문자 01/30
  • 어떤 의미이신지 잘 모르겠네.... 귀차니스트 01/23

달력

«   2010/03   »
일 월 화 수 목 금 토
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

링크

  • kkamagui 프로그래밍 세상.
  • runner님의 이글루.
  • 당구리의 마굿간.
  • 동우fly.
  • 류광의 번역 이야기.
  • 서광열의 프로그래밍 언....
  • 준호씨의 블로그.
  • 최익필의 이름없는 블로그.
  • 위키는 귀차니즘.

최근에 받은 트랙백

  • 한게임 테트리스 인공지.... 고니's Life 2009
  • ACM 706 (Uva ID) : LCD.... 알고리즘 트레이닝 : Oh... 2009
  • 문제 4 : LCD 디스플레.... 최익필의 이름없는 블로그 2009
  • 궁극의 예외처리. 이름없는 블로그 2008
  • Maximum sum. 티스토리 지점 2008

글 보관함

  • 2010/03 (1)
  • 2010/02 (1)
  • 2010/01 (1)
  • 2009/12 (3)
  • 2009/08 (1)

태그목록

  • 갑
  • Sector
  • Codegear
  • STL
  • 참조
  • Linefeed
  • Rest
  • iterator_traits
  • Run Length
  • Develope
  • 공백
  • boost
  • Linux
  • Interpreter
  • spirit
  • TShell
  • VCL
  • std::copy
  • Ribbon UI
  • GUI
  • 반복자
  • ATL
  • multimap
  • Printer
  • RCW
  • 탑코더
  • Warcraft3
  • Gradient
  • XHTML
  • IPangYa

지역로그 : 태그 : 방명록 : 관리자 : 글쓰기
귀차니스트’s Blog is powered by Textcube 1.7.5 : Risoluto / Designed by DesignNia.net