[Python] 백준 20057: 마법사 상어와 토네이도
www.acmicpc.net/problem/20057 20057번: 마법사 상어와 토네이도 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 www.acmicpc.net 풀이 방법 토네이도와 모래의 이동경로만 잘 잡아주면 풀 수 있는 문제였다. 토네이도는 (n//2, n//2)지점부터 시작해서 방향은 좌, 하, 우, 상을 반복하면서 해당 방향으로 1칸, 1칸, 2칸, 2칸, 3칸, 3칸, 4칸, 4칸, ... 이렇게 2를 주기로 칸수를 늘려서 같은 방향을 이동한다. (아래 이미지 참고) 위를 기준으로 0부터 n*n-1까지 이동할 방향을 arr에 ..
[Python] 백준 17779: 게리맨더링 2
www.acmicpc.net/problem/17779 17779번: 게리맨더링 2 재현시의 시장 구재현은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 구재현은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름 www.acmicpc.net 풀이 과정 개인적으로 골드 4치고는 어려웠던 문제 같다. 우선 구역 5가 되는 경계 부터 체크해준다. 이후 각 1, 2, 3, 4의 범위(문제에 명시된)에 포함되고, 경계를 만나기 전까지 인구수를 더해준다. 5 구역의 인구는 전체 인구에서 1, 2, 3, 4 인구의 합을 빼는 것이 가장 편하다. 전체 코드 def calculate(x, y, d1, d2): arr = [0,0,0,0,0] temp = [[0]*n f..
[Python] 프로그래머스 level3 외벽 점검
programmers.co.kr/learn/courses/30/lessons/60062 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 "스카피"는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하 programmers.co.kr 풀이 방법 어떤 친구들 먼저 처리할지 순서가 매번 다르기 때문에 permutation함수를 이용해서 dist의 모든 순서를 다 고려해준다. -> dist = [3, 5, 7]일 때, [3, 5, 7], [3, 7, 5], [5, 3, 7], .... 모두 고려 각 dist에 대해서 dijkstra를 이용해 모든 취약점을 방문하는 최소 친구 수를 구한다. 그래프의 방문을 이용할..