-
[BOJ]백준 22939번: 쿠키크루(Python)/BruteForceProblem Solving/BOJ(백준) 2021. 8. 27. 00:08
https://www.acmicpc.net/problem/22939
단어가 안 읽혀서 재밌는 문ㄴ제 ㅎㅎ
최단거리하면 자동으로 BFS와 연관짓게 되는데, 그러한 부분을 역으로 주의해야 한다
이 문제에서는 장애물도 없고, 이동하는 데에 아무런 제약이 없기 때문에 거리를 단순히 맨해튼 거리로 구해주면 시간복잡도가 O(1)로 간단하다
따라서 모든 지원분야에 대해, 모든 정점 방문 가능 순서에 대해 전부 구해주면 되기 때문에 브루트 포스 ~~
import sys from itertools import permutations sys.stdin = open('python/input.txt', 'r') input = sys.stdin.readline n = int(input()) board = [] home = [0, 0] cookie = [0, 0] kinds = ['J', 'C', 'B', 'W'] field = ['Assassin', 'Healer', 'Mage', 'Tanker'] topping = [[] for _ in range(4)] def dist(a, b): return abs(a[0]-b[0])+abs(a[1]-b[1]) for i in range(n): board.append(input()) for j in range(n): if board[i][j] == 'H': home = [i, j] if board[i][j] == '#': cookie = [i, j] for k in range(4): if board[i][j] == kinds[k]: topping[k].append([i, j]) minVal = 10**10 ans = '' for k in range(4): perm = permutations(topping[k], 3) for p in perm: d = dist(home, p[0])+dist(p[0], p[1]) + \ dist(p[1], p[2])+dist(p[2], cookie) if d < minVal: minVal = d ans = field[k] print(ans)
우왕 오늘 세 문제 풀엇다 ~~
'Problem Solving > BOJ(백준)' 카테고리의 다른 글
[BOJ]백준 22945번: 팀 빌딩(Python)/TwoPointer (0) 2021.09.04 [BOJ]백준 22955번: 고양이 도도의 탈출기(C++)/Dijkstra (428) 2021.08.31 [BOJ]백준 22953번: 도도의 음식 준비(Python)/Backtracking, BinarySearch (426) 2021.08.26 [BOJ]백준 3079번: 입국심사(Python)/BinarySearch (429) 2021.08.26 [BOJ]백준 21941번: 문자열 제거(Python)/String, DP (449) 2021.08.25