728x90

백준 9242 - 폭탄 해체

시간 제한 1초, 메모리 제한 128MB

# 조건

  • 홍준이가 자주 가는 호프에 폭탄이 설치되었다는 신고가 들어왔다.
  • 홍준이는 즉시 호프로 달려갔다.
  • 폭탄을 잠시 살펴보니 술집에 설치된 폭탄은 해체하기 매우 까다로운 폭탄이었다.
  • 홍준이는 폭탄의 상단에 숫자가 표시되고 있다는 점에 주목했다.
  • 잠시 인터넷으로 폭탄 해체법을 검색해보니, 폭탄의 상단에 표시되는 숫자를 코드라고 한다는 것을 알게 되었다.
  • 또, 코드가 6으로 나누어 떨어질 때 전선을 잘라야 한다고 나왔다.
  • 폭탄의 코드가 주어졌을 때, 전선을 자르면 폭탄을 해체할 수 있는지, 폭탄이 폭발하는지 구하는 프로그램을 작성하시오.

입력

  • 입력으로 폭탄의 코드가 주어진다.
  • 코드는 2자리 이상, 8자리 이하이고, 각 자리는 5행 3열의 문자로 주어진다.
  • 문자는 공백과 별표('*') 중 하나이다.
  • 또, 각 숫자를 구분하기 위해 숫자 사이에는 빈 칸이 하나씩 있다.
  • 모든 숫자는 5×3 크기이지만, 올바르지 않은 숫자가 주어질 수도 있다.
  • 올바르지 않은 숫자가 주어진 경우에는 전선을 자르면 안 된다.
  • 0부터 9까지 숫자를 5×3으로 나타내는 방법은 아래에 나와있다.
    ### ### ### ### ### ### ### ### ### ###






- 그림 1. 맨 위의 #는 열을 알아보기 쉽게 하기 위해 주어진 문자이다.
- 코드는 0으로 시작하는 숫자일 수도 있다. 
    - 예를 들어, 00000076는 76이다.

#### **출력**
- 첫째 줄에 입력으로 주어진 코드인 경우에 전선을 잘라도 되면 "BEER!!"를, 자르면 폭발하는 경우에는 "BOOM!!"을 출력한다.

## **# 접근 방법**

- 브루트 포스로 풀어주었다.
- 각 숫자를 나타내는 배열을 선언해 준 후, 주어진 문자열의 숫자를 찾아낸 후 6으로 나눠주면 된다.

```python
arr = [input() for _ in range(5)]
N = (len(arr[0])//4)+1

zero = ['***','* *','* *','* *','***']
one = ['  *','  *','  *','  *','  *']
two = ['***','  *','***','*  ','***']
three = ['***','  *','***','  *','***']
four  = ['* *','* *','***','  *','  *']
five = ['***','*  ','***','  *','***']
six = ['***','*  ','***','* *','***']
seven = ['***','  *','  *','  *','  *']
eight = ['***','* *','***','* *','***']
nine = ['***','* *','***','  *','***']
nums = [zero,one,two,three,four,five,six,seven,eight,nine]
check = [False]*5
check_all = [False]*10
ans_list = []

for i in range(N):
    for n in range(10):
        for j in range(5):
            if arr[j][i*4:i*4+3] == nums[n][j]:
                check[j] = True
        if all(check):
            check_all[n] = True
            ans_list.append(n)
        check = [False]*5
    if any(check_all):
        check_all = [False]*10
        continue
    else:
        print("BOOM!!")
        exit()
ans = 0
for i in range(1,N+1):
    ans += ans_list[-i]*(10**(i-1))
if ans%6==0:
    print("BEER!!")
else:
    print("BOOM!!")
728x90