알고리즘

[백준, 파이썬, 9242번] 폭탄 해제

hminor 2023. 9. 6. 10:26

풀이

 

  • 흐음 뭔가 노가다로 푼거 같긴하지만.. 
  • 우선 입력 받은 값을 반복문의 슬라이싱을 통해 순서에 맞게 추가한 다음
  • 기존 입력했던 _dic에
    • 요소가 있다면 result로,
    • 없다면 BOOM!! 을 출력한 뒤, flag 변경한 다음, 반복문 탈출
  • flag가 True의 경우만 result를 6으로 나눈 나머지 확인 후 출력하여 문제 해결

 

import sys
input = sys.stdin.readline

_dic = {
'**** ** ** ****':'0',
'  *  *  *  *  *':'1',
'***  *****  ***':'2',
'***  ****  ****':'3',
'* ** ****  *  *':'4',
'****  ***  ****':'5',
'****  **** ****':'6',
'***  *  *  *  *':'7',
'**** ***** ****':'8',
'**** ****  ****':'9',
}

boom = [input().rstrip('\n') for _ in range(5)]
li = []
for i in range(len(boom)):
    if i == 0:
        for j in range(0,len(boom[i]),4): li.append(boom[i][j:j+3])
    else:
        cnt = 0
        for j in range(0,len(boom[i]),4):
            li[cnt] = li[cnt] + boom[i][j:j+3]
            cnt += 1

result,flag = '', True
for i in range(len(li)):
    try: result += _dic[li[i]]
    except:
        print("BOOM!!")
        flag = False
        break

if flag:
    if int(result)%6: print("BOOM!!")  
    else: print("BEER!!")