탐색 최적화보다는 구현이 중심인 문제입니다.
각 테트로미노에 대해서 확인해야 할 좌표를 전처리해두고 합의 최댓값을 구했습니다.
코드 use std::io::{stdin, Read}; static TETROMINOES: [[(usize, usize); 4]; 19] = [ // I [(0, 0), (0, 1), (0, 2), (0, 3)], [(0, 0), (1, 0), (2, 0), (3, 0)], // O [(0, 0), (0, 1), (1, 0), (1, 1)], // L [(0, 0), (1, 0), (2, 0), (2, 1)], [(1, 0), (1, 1), (1, 2), (0, 2)], [(0, 0), (0, 1), (1, 1), (2, 1)], [(0, 0), (1, 0), (0, 1), (0, 2)], // J [(0, 1), (1, 1), (2, 1), (2, 0)], [(0, 0), (0, 1), (0, 2), (1, 2)], [(0, 0), (1, 0), (2, 0), (0, 1)], [(0, 0), (1, 0), (1, 1), (1, 2)], // S [(0, 1), (1, 1), (1, 0), (0, 2)], [(0, 0), (1, 0), (1, 1), (2, 1)], // Z [(0, 0), (0, 1), (1, 1), (1, 2)], [(0, 1), (1, 1), (1, 0), (2, 0)], // T [(0, 0), (0, 1), (0, 2), (1, 1)], [(0, 0), (1, 0), (2, 0), (1, 1)], [(0, 1), (1, 0), (1, 1), (1, 2)], [(0, 1), (1, 1), (2, 1), (1, 0)], ]; fn main() { let mut input = String::new(); stdin()....