C++ Programming/백준

[C++] 백준 16918번:봄버맨

2022. 1. 16. 14:38
목차
  1. 문제링크
  2. 문제 풀이
  3. 코드

문제링크

 

16918번: 봄버맨

첫째 줄에 R, C, N (1 ≤ R, C, N ≤ 200)이 주어진다. 둘째 줄부터 R개의 줄에 격자판의 초기 상태가 주어진다. 빈 칸은 '.'로, 폭탄은 'O'로 주어진다.

www.acmicpc.net

 

 

문제 풀이

시간의 순서대로 격자판의 상태를 나열하면 다음과 같다.

 

0초 : 초기상태

1초 : 초기상태와 동일(봄버맨이 아무것도 하지 않음)

2초 : 폭탄이 설치되어 있지 않은 모든 칸에 폭탄 설치

3초 : 0초에 설치되어 있던 폭탄이 폭발(폭발한 뒤의 격자판을 board_3이라고 가정)

4초 : board_3 격자판에 폭탄이 설치되어 있지 않은 모든 칸에 폭탄 설치

5초 : 2초에 설치한 폭탄이 폭발(폭발한 뒤의 격자판을 board_5라고 가정)

6초 : board_5 격자판에 폭탄이 설치되어 있지 않은 모든 칸에 폭탄 설치

...

 

 

봄버맨과 격자판은 위와 같은 방식으로 순환할 것이다. 자세히 살펴보면 한 가지 특징을 찾을 수 있는데(똑똑한 사람은 이미 찾았겠지만) 짝수 초일 때는 폭탄을 설치하고 홀수 초일 때는 폭탄이 폭발한다는 것이다.

 

 

char board[200][200]는 격자판의 상태를 저장하고

int _time[200][200]은 폭탄이 터지는 시간을 저장한다.

 

 

1초에는 봄버맨이 아무 일도 하지 않기 때문에 시작 시간 t를 2로 잡고 아래의 동작을 반복한다.

 

짝수 초 일 경우 - 폭탄 설치

(i, j)위치에 폭탄을 설치한다고 하면 board[i][j] 를 ‘O’로 바꿔주고, _time[i][j]를 현재 시간 t+3으로 바꿔주어야 한다.(3초 뒤에 터지기 때문)

 

홀수 초 일 경우 - 폭탄 폭발

(상, 하, 좌, 우 의 폭탄도 같이 폭발)(i, j)위치의 폭탄이 폭발한다고 하면 board[i][j] 를 ‘.’로 바꿔주고, 상, 하, 좌, 우를 확인하며 유효한 위치라면 각 위치의 board값도 ‘.’으로 바꿔주어야 한다.

특정 위치의 폭탄이 폭발하려면 _time[i][j]의 값이 현재 시간과 같아야 한다.

 

 

코드

  1. 문제링크
  2. 문제 풀이
  3. 코드
'C++ Programming/백준' 카테고리의 다른 글
  • [C++] 백준 7589번:토마토
  • [C++] 백준 7576번:토마토
  • [C++] 백준 2178번:미로 탐색
  • [C++] 백준 11725번:트리의 부모 찾기
Krrong
Krrong
Krrong
노는게 제일 좋아
Krrong
전체
오늘
어제
  • 분류 전체보기 (302)
    • Android (2)
    • 우아한테크코스 (46)
      • Level 5 ~ (3)
      • Level 4 (8)
      • Level 3 | Project (8)
      • Level 2 (12)
      • Level 1 | Mission (4)
      • Level 1 | 정리 (5)
      • 프리코스 (6)
    • 스터디 (1)
      • 기술면접 질문 정리 (1)
      • Kotlin in Action (0)
    • AI⦁딥러닝 (5)
    • Jetson Xavier (9)
    • Computer Vision (6)
      • GoProCam (2)
      • OpenCV (4)
    • (구)Android (36)
      • 이론 (4)
      • Java (20)
      • Kotlin (12)
    • C++ Programming (161)
      • 백준 (146)
      • 알고리즘 (13)
      • STL 사용법 (2)
    • Git (5)
    • Spring (5)
    • 활동 (3)
    • 기타 (3)
    • 🇩🇪 (13)
      • 일상 (13)
    • ✈️ 여행 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기
  • 티스토리홈

공지사항

인기 글

태그

  • 정렬알고리즘
  • 퀵소트
  • 알고리즘

최근 댓글

최근 글

hELLO · Designed By 정상우.
Krrong
[C++] 백준 16918번:봄버맨
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.