Untitled

 avatar
unknown
python
4 months ago
1.7 kB
4
Indexable
with open('day03 input.txt', 'r') as f:
    content = f.read().split()

tabela = [list(line) for line in content]

margem_rl = list('...')
tabela = [margem_rl + line + margem_rl for line in tabela]
margem_du_line = list('.'*(len(tabela[0])))
margem_du = [margem_du_line , margem_du_line , margem_du_line]
tabela = margem_du + tabela + margem_du

soma1 = 0
for l in range(3, len(tabela)-3):
    for c in range(3, len(tabela[0])-3):
        if tabela[l][c] == 'X':
            down_ = 'X' + tabela[l+1][c] + tabela[l+2][c] + tabela[l+3][c]
            up___ = 'X' + tabela[l-1][c] + tabela[l-2][c] + tabela[l-3][c]
            right = 'X' + tabela[l][c+1] + tabela[l][c+2] + tabela[l][c+3]
            left_ = 'X' + tabela[l][c-1] + tabela[l][c-2] + tabela[l][c-3]
            dr___ = 'X' + tabela[l+1][c+1] + tabela[l+2][c+2] + tabela[l+3][c+3]
            dl___ = 'X' + tabela[l+1][c-1] + tabela[l+2][c-2] + tabela[l+3][c-3]
            ur___ = 'X' + tabela[l-1][c+1] + tabela[l-2][c+2] + tabela[l-3][c+3]
            ul___ = 'X' + tabela[l-1][c-1] + tabela[l-2][c-2] + tabela[l-3][c-3]
            palavras = [down_, up___,right,left_,dr___,dl___,ur___,ul___]
            for palavra in palavras:
                if palavra == 'XMAS':
                    soma1 += 1        

soma2 = 0
palavras = ('MAS', 'SAM')
for l in range(3, len(tabela)-3):
    for c in range(3, len(tabela[0])-3):
        if tabela[l][c] == 'A':
            diag1 = tabela[l-1][c-1] + 'A' + tabela[l+1][c+1]
            diag2 = tabela[l+1][c-1] + 'A' + tabela[l-1][c+1]
            if diag1 in palavras and diag2 in palavras:
                soma2 += 1
                
print(soma1, soma2)
Editor is loading...
Leave a Comment