bruteforce 2

[백준 BOJ] 17281번 ⚾ (Python)

17281번: ⚾ (acmicpc.net) 17281번: ⚾ ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝 동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종 www.acmicpc.net 시뮬레이션, 브루트포스 문제이다. 문제 설명은 현행 야구 규칙과 동일하다. 주어지는 이닝은 모두 공격일 때의 타자 정보이므로, 수비는 생각하지 않아도 된다. 문제 하단에 pypy3 1.5초라고 명시돼 있는 것이 매우 싸늘한 분위기를 자아낸다... 파이썬으로는 택도 없다는 소리이기 때문이다. 시간초과를 잡기 위해 처음 코드에서 다음과 같은 사항을 고쳤다. 진루 상황을 저장하는 변수: 정수 → 리스트 → 정수 하나의 타순에 대해 ..

[백준] 20208번: 진우의 민트초코우유 (Python)

20208번: 진우의 민트초코우유 (acmicpc.net) 20208번: 진우의 민트초코우유 첫번째 줄에 민초마을의 크기인 N과 진우의 초기체력 M, 그리고 민트초코우유를 마실때 마다 증가하는 체력의 양 H가 공백을 두고 주어진다. N, M, H는 모두 10보다 작거나 같은 자연수이다. 두번째 www.acmicpc.net 백트래킹, 브루트포스 주어지는 보드 위에 장애물이 없기 때문에, 우유가 있는 위치까지의 맨하탄 거리를 계산하면 된다. 네 방향으로 탐색하는 알고리즘은 시간초과가 발생하게 된다. 아래와 같은 과정으로 풀이했다. 보드 상의 우유 위치를 리스트에 저장한다. 우유 리스트를 순회하며 다음 조건을 검사한다. 현재까지 마시지 않은 우유인가 현재 체력으로 도달할 수 있는 위치인가 두 조건을 만족하면 ..